问题描述
从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"])