我需要使用 Python 将 jsonfiles 从我的文件夹发送到 azure-EventHubimport jsonfrom azure.eventhub import EventHubClient, Sender, EventData# Address can be in either of these formats:# "amqps://<URL-encoded-SAS-policy>:<URL-encoded-SAS-key>@<mynamespace>.servicebus.windows.net/myeventhub"# "amqps://<mynamespace>.servicebus.windows.net/myeventhub"# SAS policy and key are not required if they are encoded in the URLADDRESS = "amqps://xxxxxxxxxxxx.servicebus.windows.net/import"# SAS policy and key are not required if they are encoded in the URLUSER = "xxx"KEY = "xxxxxxxxxxxxxx"# Create an Event Hubs clientclient = EventHubClient(ADDRESS, debug=False, username=USER, password=KEY)# Add a sender to the clientsender = client.add_sender(partition="0")# Run the Event Hub clientclient.run()# Send jsonfile one by one to the event hub from below foldersender.send(EventData("C:/Users/shef123/Desktop/"))我的代码不起作用,因为我刚开始学习 python。任何人都可以帮我解决这个问题。
2 回答
绝地无双
TA贡献1946条经验 获得超4个赞
这里重要的是EventData
object 只需要string 或 bytes。Python SDK 不会为您读取文件,只会将该文件路径作为原始数据字符串并将该字符串发送到事件中心。
因此,您需要做的是打开文件并将内容加载到字节数组中,然后将字节传递给EventData
构造函数 -- EventData(body=loaded_bytes)
。请注意,根据您选择的层级(基本/标准) ,活动规模有配额限制。
值得注意的是,azure-eventhub v5 已于 2020 年 1 月 GAed。
它在 pypi 上可用:https ://pypi.org/project/azure-eventhub/
请按照从 v1 到 v5 的迁移指南迁移您的程序。
还有一个示例文件夹示例供您开始使用。
PIPIONE
TA贡献1829条经验 获得超9个赞
问题在于您尝试将数据发送到事件中心的方式。您不能直接调用此函数并传递文件夹以处理文件,如下所示:
sender.send(EventData("C:/Users/shef123/Desktop/"))
您可以查看此链接以读取 json 文件:
https://www.simplifiedpython.net/python-read-json-file/
您可以从文件夹中读取 JSON 文件,并且可以使用类似的代码一一发送。
您可以在 beloe repo 中找到与发送数据相关的代码:
https://github.com/Azure/azure-event-hubs-python/blob/master/examples/send_async.py
添加回答
举报
0/150
提交
取消