2016-10-07 69 views
4

我有一個嵌套的字典,在一個JSON文件中的許多項目後破回到文件中,保持縮進(如圖所示)。 我使用以下2種方法加載和轉儲原始和更新的字典。縮進被保存回更新JSON字典到文件

保存文件後文件被保存爲一條長行('\ n')後,除了行的縮進(格式)被破壞之外,所有工作都很好(用於更改值並將其保存迴文件) '在更新值後顯示)。

我已經嘗試過使用'pickle'(如在這裏的其中一個帖子中看到的那樣),但是這沒有奏效,使得文件中的所有數據變得混亂。

def loadJson(self, jsonFilename): 
     with open(FILE_PATH + '\\' + jsonFilename, 'r') as f: 
      return json.load(f) 

    def writeJson(self, jsonFilename, jsonDict): 
     with open(FILE_PATH + '\\' + jsonFilename, 'w') as f: 
      return json.dump(jsonDict, f)   

任何幫助都可以。

回答

4

json.dumps和轉儲有一個稱爲縮進

If ``indent`` is a non-negative integer, then JSON array elements and 
    object members will be pretty-printed with that indent level. An indent 
    level of 0 will only insert newlines. ``None`` is the most compact 
    representation. Since the default item separator is ``', '``, the 
    output might include trailing whitespace when ``indent`` is specified. 
    You can use ``separators=(',', ': ')`` to avoid this 

像這樣的事情會做參數:

json.dump(jsonDict,f,indent=4) 
+0

太好了!加工!任何想法如何擺脫更新值結束時的'\ n'? –

+0

抱歉,您不知道該評論是否代表文件末尾的新行? – e4c5

+0

。新行。在更新後的值後顯示。其他值保持不變(因爲他們沒有更新) –