【发布时间】:2016-09-07 22:26:52
【问题描述】:
我在将 JSON 数据解析为我无法弄清楚的字典时遇到了问题。
我正在从 JavaScript 连接到 Tornado websocket 并发送以下数据,输入文本字段:
{"action": "something"}
我将它发送到 websocket 的方式是:
sock.send( JSON.stringify( $('textfield').value ) );
现在在 Python 中,我的 WebsocketHandler::on_message() 中有以下代码:
print("Message type: " + str(type(message)) + ", content: " + message)
parsed_message = json.loads(message)
print("Parsed message type: " + str(type(parsed_message)) + ", content: " + parsed_message)
由此产生的输出是:
Message type: <type 'unicode'>, content: "{\"action\":\"START_QUESTION_SELF\"}"
Parsed message type: <type 'unicode'>, content: {"action":"START_QUESTION_SELF"}
现在我希望第二条打印的消息是dict,但我不知道为什么这不起作用。任何帮助将不胜感激。
【问题讨论】:
-
对不起,如果我误解了,但是 content: {"action":"START_QUESTION_SELF"} 实际上是一个字典。
-
你用的是python2还是3?
-
@M.T,我使用的是 Python 2.7
-
@SerhanOztekin 它作为 unicode 字符串被接收,在调用
json.loads()后它仍然被视为 unicode 对象,我不能将其用作字典。 -
我无法使用 python 2.7 重现这一点。我得到
Parsed message type: <type 'dict'>
标签: javascript python json dictionary unicode