我收到一个字符串服务器端,然后将其转换为JSON:
127.0.0.1:8000/devices/f751/?json={ "DeviceId":"192-2993-2993", "Date":"1/4/2019 9:52:2", "Location":"-1.000000000,-1.000000000", "Key":"{XXXX-XXXX-XXXX}", "Data":" { \"Value0\":\"{ \"ReferenceValue\":\"Elevation\", \"Prediction\":\"22.216558464\"}\", \"Value1\":\"{ \"ReferenceValue\":\"Wind Speed\", \"Prediction\":\"42.216558464\"}\" } "}
使用json.loads()
进行转换后,我得到以下输出:
updatedRequest = json.loads(jsonRequest)
updatedRequest
{'DeviceId': '192-2993-2993',
'Date': '1/4/2019 9:52:2',
'Location': '-1.000000000,-1.000000000',
'Key': '{XXXX-XXXX-XXXX}',
'Data': '{ "Value0":"{ "ReferenceValue":"Elevation", "Prediction":"22.216558464"}", "Value1":"{ "ReferenceValue":"Wind Speed", "Prediction":"42.216558464"}" }'}
到目前为止,我可以通过updatedRequest['Data']
访问数据值。在
我在尝试将其转换为Python可用字典时遇到的问题(例如updatedRequest['Data']['Value0']['ReferenceValue']
)。因为“值”键的数目未知,所以我不确定将这些键移到可用数据中的最佳方法是什么。在
这实际上取决于你想如何处理这些数据。您可以使用以下内容在“数据”字典中循环:
这将允许您处理,而不必处理此字典中的可变项数。很难说什么是最好的,但不知道你到底想做什么!在
您已经收到一个JSON文档,其中包含一个嵌套的JSON文档,它本身包含更多的JSON文档,内部像Matryoshka doll。在
不幸的是,您只能解码一个级别,因为下一个级别是中断的。在用于第三级JSON文档的
"
引号字符前面应该有\
转义,就像第二级引号嵌入到顶级JSON文档中时转义一样。这些都丢失了,因此没有JSON解析器可以对其进行解码。JSON字符串周围的分隔符已被作为JSON字符串值一部分的散乱、未转义的"
字符破坏。在您需要修复发送此数据的客户端,并将这些格式错误的值作为无效请求丢弃。在
为完整起见,有效的文档如下所示:
注意}在}序列,其中
\"
和{Data
值中转义。解码时,Data
的字符串值将删除一级转义序列,形成"
和{"
引号是JSON语法的一部分,\"
是字符串值的一部分,这些字符串值又可以被解码为在最里面的JSON文档中使用的"
。在相关问题 更多 >
编程相关推荐