猿问

使用 Python 将 jsonfiles 发送到 EventHub

我需要使用 Python 将 jsonfiles 从我的文件夹发送到 azure-EventHub


import json

from 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 URL

ADDRESS = "amqps://xxxxxxxxxxxx.servicebus.windows.net/import"


# SAS policy and key are not required if they are encoded in the URL

USER = "xxx"

KEY = "xxxxxxxxxxxxxx"


# Create an Event Hubs client

client = EventHubClient(ADDRESS, debug=False, username=USER, password=KEY)


# Add a sender to the client

sender = client.add_sender(partition="0")


# Run the Event Hub client

client.run()


# Send jsonfile one by one to the event hub from below folder

sender.send(EventData("C:/Users/shef123/Desktop/"))

我的代码不起作用,因为我刚开始学习 python。任何人都可以帮我解决这个问题。


慕尼黑5688855
浏览 135回答 2
2回答

绝地无双

这里重要的是EventDataobject 只需要string 或 bytes。Python SDK 不会为您读取文件,只会将该文件路径作为原始数据字符串并将该字符串发送到事件中心。因此,您需要做的是打开文件并将内容加载到字节数组中,然后将字节传递给EventData构造函数 --&nbsp;EventData(body=loaded_bytes)。请注意,根据您选择的层级(基本/标准)&nbsp;,活动规模有配额限制。值得注意的是,azure-eventhub v5 已于 2020 年 1 月 GAed。它在 pypi 上可用:https ://pypi.org/project/azure-eventhub/请按照从 v1 到 v5 的迁移指南迁移您的程序。还有一个示例文件夹示例供您开始使用。

PIPIONE

问题在于您尝试将数据发送到事件中心的方式。您不能直接调用此函数并传递文件夹以处理文件,如下所示: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
随时随地看视频慕课网APP

相关分类

Python
我要回答