为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Python 将 jsonfiles 发送到 EventHub

使用 Python 将 jsonfiles 发送到 EventHub

慕尼黑5688855 2022-05-24 16:28:15
我需要使用 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个赞

这里重要的是EventDataobject 只需要string 或 bytes。Python SDK 不会为您读取文件,只会将该文件路径作为原始数据字符串并将该字符串发送到事件中心。

因此,您需要做的是打开文件并将内容加载到字节数组中,然后将字节传递给EventData构造函数 -- EventData(body=loaded_bytes)。请注意,根据您选择的层级(基本/标准) ,活动规模有配额限制。


值得注意的是,azure-eventhub v5 已于 2020 年 1 月 GAed。

它在 pypi 上可用:https ://pypi.org/project/azure-eventhub/

请按照从 v1 到 v5 的迁移指南迁移您的程序。

还有一个示例文件夹示例供您开始使用。


查看完整回答
反对 回复 2022-05-24
?
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


查看完整回答
反对 回复 2022-05-24
  • 2 回答
  • 0 关注
  • 133 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信