- 已关闭。**此问题为not reproducible or was caused by typos。当前不接受答案。
这个问题是由打字错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
3天前关闭。
Improve this question
我通过我的API接收到以下json:
{"info":"{\"allEvents\":\"[{\\\"equipDetailChargeAmount\\\":\\\"\\\",\\\"equipDetailDescription\\\":\\\"ONT XS-010X-Q Indoor\\\",\\\"equipDetailQty\\\":\\\"1\\\",\\\"equipDetailSerialNbr\\\":\\\"ALCLFC76C655\\\"}]\",\"interventionFinishTime\":\"2023-01-18 08:33:47\",\"technicanNumber\":\"xyz\",\"orderNumber\":\"NM550044-4\",\"accessNumber\":\"131001199099\",\"interventionArrivalTime\":\"2023-01-18 08:00:00\",\"installationAddress\":\"001, Doheem\",\"allFlags\":\"[{\\\"pkgDetailQty\\\":\\\"1\\\",\\\"pkgDetailDescription\\\":\\\"Inst./supp. Patch NTP\\\",\\\"pkgDetailChargeAmount\\\":\\\"\\\"},{\\\"pkgDetailQty\\\":\\\"1\\\",\\\"pkgDetailDescription\\\":\\\"mise en service produit NTP\\\",\\\"pkgDetailChargeAmount\\\":\\\"\\\"},{\\\"pkgDetailQty\\\":\\\"1\\\",\\\"pkgDetailDescription\\\":\\\"\\\\\\\"Attente non payante \\\\\\\\\\\\\\\"\\\\\\\"Divers\\\\\\\\\\\\\\\"\\\\\\\"\\\\\\\"\\\",\\\"pkgDetailChargeAmount\\\":\\\"\\\"}]\",\"operator\":\"BLABLA SA\"}"}
在所有的在线json验证器中,这个json看起来是有效的,但是在python中失败了,并显示消息:需要','分隔符:第1行第675列(字符674)。我用下面的字符替换反斜杠,返回一个dict:
self._json_data = self._json_data.replace('\\', '').replace('\"[{', '[{').replace('}]\"', '}]').replace('\"{\"', '{\"').replace('}\"', '}')
json_dict = json.loads(self._json_data)
也许这是一个错误的方法,但我该如何解决这个问题呢?
1条答案
按热度按时间omhiaaxx1#
正如评论所建议的那样,这一问题应在源头加以解决。
然而,要按原样解析响应,您需要解码多个级别。
首先,你给出的例子不是
json
,而是一个包含json
的pythondict
,要解析这个json
,你需要通过键来访问它。在这里,
parsed
仍然没有被完全解析,因为它是一个pythondict
,它的值 * 有时 * 包含json
。如果你事先知道它们并且它们总是相同的,你可以简单地直接通过键解析它们。* 或者 * 你可以简单地检查值是否包含"["
。所以第二部分应该是:
完整代码: