我有三个浮点数组数据(A,B,C),我想将其发送到事件中心。
这里的问题是类是嵌套的,我不知道如何调整数据的形状以能够成功发送。
这是我正在尝试的代码
logger = logging.getLogger("azure")
ADDRESS = ""
USER = ""
KEY = ""
try:
if not ADDRESS:
raise ValueError("No EventHubs URL supplied.")
# Create Event Hubs client
client = EventHubClient(ADDRESS, debug=False, username=USER, password=KEY)
sender = client.add_sender(partition="0")
client.run()
x_value = np.arange(100)
try:
start_time = time.time()
for i in range(100000):
A = np.asarray([1,2,3,4])
B = np.asarray([2,3,4,5])
C = np.asarray([3,4,5,6])
message = [A, B, C]
sender.send(EventData(body = message))
time.sleep(1)
except:
raise
finally:
end_time = time.time()
client.stop()
run_time = end_time - start_time
logger.info("Runtime: {} seconds".format(run_time))
except KeyboardInterrupt:
pass
这样,我看到错误'ValueBody'对象没有属性'append'我认为根据类型,类对消息的编码方式有所不同。我不想以串行字符串发送单个消息,而是以并行方式发送消息,并接收如下消息:
对于第二种方法,我不确定是否可以工作,因为我只使用一个分区,并且在收到它们但我不希望这样做时,可能混合了三个事件数据A,B,C。
我已经确认支持ms,反馈是:它仅适用于字符串或字节列表,而不适用于int列表。
而且您还应该注意,即使它发送了一个字符串列表,当接收到该列表时,它也会将列表的所有元素连接起来组成一条消息。例如,如果存在要发送的列表[“ a”,“ b”,“ c”,“ d”],则在接收到该列表时,会将其显示为整个字符串。
我已经亲自测试过,以上信息正确。
因此,对于您的情况,您应考虑将列表更改为字符串或json字符串。接收时,您可以将数据格式化为所需的格式。
希望有帮助。