我一直在考虑的,我正在尝试加载到蟒蛇3.5如何加载与字符串包括
JSON文件加载双引号(“)json文件,我已经不得不做一些清洁。后续工作,消除双反斜线和额外的报价,但是我碰到的一个问题,我不知道如何解决
我运行下面的代码:
with open(filepath,'r') as json_file:
reader = json_file.readlines()
for row in reader:
row = row.replace('\\', '')
row = row.replace('"{', '{')
row = row.replace('}"', '}')
response = json.loads(row)
for i in response:
responselist.append(i['ActionName'])
但是它扔了错误:
JSONDecodeError: Expecting ',' delimiter: line 1 column 388833 (char 388832)
是造成这一问题的JSON的部分是下面的状态文本输入:
我加了换行来说明我的观点,它看起来像蟒蛇是不满,认为字符串包含双引号。
我有一种感觉,这可能与我用''替换字符串中的unicode字符替换'\'。有没有办法修复这些嵌套的字符串?我不介意StatusText字段是否被完全删除,我所追求的是ActionName字段的列表。
编辑: 我这里主持一个例子文件:
这是完全一样的,我收到,之前我已经更换了额外的反斜线和报价
这里是一个削减带有一个错误条目的样本的缩减版本
["{\"apiServerType\":0,\"RequestId\":\"52a65260-1637-4653-a496-7555a2386340\",\"StatusId\":0,\"StatusIdString\":\"Ok\",\"StatusText\":null,\"ActionName\":\"GetCameraImage\",\"Url\":\"http://mosi-prod.cloudapp.net/api/v1/GetCameraImage?AuthToken=vo*AB57XLptsKXf0AzKjf1MOgQ1hZ4BKipKgYl3uGew%7C&CameraId=13782\",\"Lat\":0.0,\"Lon\":0.0,\"iVendorId\":12561,\"iConsumerId\":2986897,\"iSliverId\":51846,\"UserId\":\"2986897\",\"HardwareId\":null,\"AuthToken\":\"vo*AB57XLptsKXf0AzKjf1MOgQ1hZ4BKipKgYl3uGew|\",\"RequestTime\":\"2015-12-01T00:00:42.5278699Z\",\"ResponseTime\":\"2015-12-01T00:01:02.5926127Z\",\"AppId\":null,\"HttpMethod\":\"GET\",\"RequestHeaders\":\"{\\\"Connection\\\":[\\\"keep-alive\\\"],\\\"Via\\\":[\\\"HTTP/1.1 nycnz01msp1ts10.wnsnet.attws.com\\\"],\\\"Accept\\\":[\\\"application/json\\\"],\\\"Accept-Encoding\\\":[\\\"gzip\\\",\\\"deflate\\\"],\\\"Accept-Language\\\":[\\\"en-us\\\"],\\\"Host\\\":[\\\"mosi-prod.cloudapp.net\\\"],\\\"User-Agent\\\":[\\\"Traffic/5.4.0\\\",\\\"CFNetwork/758.1.6\\\",\\\"Darwin/15.0.0\\\"]}\",\"RequestContentHeaders\":\"{}\",\"RequestContentBody\":\"\",\"ResponseBody\":null,\"ResponseContentHeaders\":\"{\\\"Content-Type\\\":[\\\"image/jpeg\\\"]}\",\"ResponseHeaders\":\"{}\",\"MiniProfilerJson\":null}"]
如果它的json,你不应该删除任何东西。如果你已经删除反斜杠......是不是反斜杠用于摆脱现在引起你的问题的引号? json将这些注释放在一边。如果你最终不喜欢解码,它可能是任何传递给JSON编码器的错误。 – tdelaney
如何发布示例json文件,以便我们可以亲眼看到。 – tdelaney
我已经添加了一个我已经收到的文件的例子的链接 –