2014-03-05 67 views
0

我有這個JSON轉儲時我只是寫成文件,該文件是沒有很好地縮進,而不是可讀性,以便使其更具可讀性我這樣做試圖縮進一個JSON轉儲,然後寫一個文件

with open(responseFile, 'w') as outfile: 
     outfile.write(dumps(loads(content), indent=4)) 

但現在我得到這個無效的\ escape:錯誤。有什麼建議麼 ?

例如內容:

{"devices":{"device":{"customAssetNumber":"","deviceName":"Shamik\'s iPhone","deviceOwner":"","deviceStatus":"Active","deviceType":"Smartphone","emailAddress":"[email protected]","imeiEsn":342342,"installedDate":"2014-03-04T09:14:58","lastReported":"2014-03-05T06:48:42","DeviceID":"ApplC39GMAR7DTD8","Status":"Enrolled","mailboxDeviceId":"","mailboxLastReported":"","mailboxManaged":"","manufacturer":"Apple","model":"iPhone 4S","osName":"iOS 7","osServicePack":"","ownership":"Not Defined","platformName":"iOS","sourceID":1,"udid":"","unifiedTravelerDeviceId":"","username":"sray","wifiMacAddress":""},"count":1,"pageNumber":1,"pageSize":1}} 
+0

「加載(內容)」是否獨立工作?聽起來你在這裏有無效的JSON。 –

+0

它不工作。可以做些什麼來修復內容? – Shamik

+0

修復內容,使其有效json –

回答

5

按照RFC-4627,僅"\和Unicode序列必須在字符串內進行轉義。一個有點hackish辦法來解決,這將是:

import re 
re.sub(r'\\([^"u\\])', r'\1', content) 

因爲\這應該工作是不應該在其他地方發生的一個有效的JSON。

+1

你可能想解釋爲什麼你需要所有的大括號,因爲它不是很明顯,爲什麼你需要這麼多。 –

+0

@SamMussmann true,done – bereal

+0

@raynaya已經在問題中添加了大括號,因此您的第一個陳述不再有任何意義。 – exhuma

相關問題