【发布时间】:2020-02-10 16:05:43
【问题描述】:
我正在实现一个带有服务器推送功能的聊天客户端 gui。将发送的消息如下所示:
yourMessage = {'name': 'David', 'text': 'hello world'}
我通过调用 streamHandler
收到服务器推送def streamHandler(incomingData):
if incomingData["event"] == "put":
if incomingData["path"] == "/":
if incomingData["data"] != None:
for key in incomingData["data"]:
message = incomingData["data"][key]
handleMessage(message)
else:
message = incomingData["data"]
handleMessage(message)
然后我有函数 handleMessage 应该检索名称和文本的值:
def handleMessage(message):
for key in message.values():
printToMessages(key)
但现在我得到了这个错误:'str' object has no attribute 'values' 我尝试向 dict 发送消息但没有成功,有什么想法吗?
【问题讨论】:
-
正如错误所说,
message是一个字符串,而不是字典。您是如何尝试“向 dict 发送消息”的? -
消息似乎是一个字符串化的字典?在这种情况下,您可以
from ast import literal_eval as le和le(message)从字符串中恢复字典。 -
我试过这样做: message: Dict(str, str) 但它说它需要一个参数而不是两个。然后我尝试了一个论点,但这也不起作用......@JohnGordon
-
message是一个字符串。调用dict()不会神奇地解决您的问题。 -
message(即incomingData["data"])是什么样的?您可以在handleMessage(message)之前执行print(message),以便在错误消息之前看到其中的数据吗?
标签: python server-push