我一直在考慮的,我正在嘗試加載到蟒蛇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
我已經添加了一個我已經收到的文件的例子的鏈接 –