首页 > 解决方案 > 如何从字典中获取值

问题描述

我正在实现一个带有服务器推送功能的聊天客户端 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 发送消息但没有成功,有什么想法吗?

标签: pythonserver-push

解决方案


也许message参数是一个json字符串。

如果是这样,您可以拥有:

import json

def handleMessage(text):
    message = json.loads(text)
    for key in message.values():
        printToMessages(key)

推荐阅读