如何使用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","id": 2}
errorMessage = response["result"]["errorMessage"]
print (errorMessage[1])

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

解决方法

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


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("'","\"")+"}"

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

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