如何使用 Python 访问嵌套字典中的字符串数据

How to acces string data in nested dictionary with Python

我从 RPC 服务器收到以下响应:

{"jsonrpc": "2.0", "result": {"errorMessage": "'DUT':1'IMEI':123456789,'debug_msg':11", "result": "True", "version": "2"}, "id": 2}

如何获取嵌套字典中“IMEI”的值,答案是“123456789”?

我试过了:

response = {"jsonrpc": "2.0", "result": {"errorMessage": "'DUT':1'IMEI':123456789,'debug_msg':11", "result": "True", "version": "2"}, "id": 2}
errorMessage = response["result"]["errorMessage"]
print (errorMessage[1])

但我只得到字符串 DUT 的第二个字符。

要解决的第一个问题是返回字符串的格式不一致,对于这种情况,可以使用 string class 的 replace 方法来解决此问题 class:


response = {"jsonrpc": "2.0", "result": {"errorMessage": "'DUT':1'IMEI':123456789,'debug_msg':11", "result": "True", "version": "2"}, "id": 2}

errorMessage = "{"+response["result"]["errorMessage"].replace("'IMEI'",",'IMEI'").replace("'","\"")+"}"

然后您可以使用 json 模块中的 loads 方法读取字符串。

from json import loads
errorDict = loads(errorMessage)
print (errorDict["IMEI"])