使用Python从套接字解析JSON消息

时间:2018-08-03 17:57:49

标签: python json

我只是在寻找有关解决我的问题的很好的提示,不一定是完整的解决方案。

我可以通过TCP套接字接收以下字符串:

{"id":"555","jsonrpc":"2.0","result":null,"timestamp":"2018-08-03T17:32:41.894"}

这就是我读取数据的方式

while True:
    data = sock.recv(1024).decode('utf-8')
    if not data:
        sys.exit(0)

我正在尝试使用以下方法解析元素:

if (data["id"] == "555"):
    print("found it..now call a function!")

无论我尝试什么,都会收到以下TypeError: 字符串索引必须为整数

我正在使用Python版本3.7。我是Python和编程方面的新手,而且我已经工作了几天。

谢谢!

1 个答案:

答案 0 :(得分:0)

Python有一个专门用于这种事情的内置json库。

import json
...
data = sock.recv(1024).decode('utf-8')    # this returns a JSON-formatted String
parsed_data = json.loads(data)            # this turns the string into a python dict
if parsed_data['id'] == '555':            # because it is now a dictionary, this will work
    ...