2017-03-03 55 views
0

我正在用Python中的CSV文件讀取此文本。在JSON中用新行保存python變量並打印出漂亮

Hi there, 



This is a test. 

並將其存儲到變量text中。

我試圖寫在那樣json.dump()一個JSON文件這個變量,但它正在變成:

'\ ufeffHi那裏,\ n \ n \ XA0 \ n \ n這是一個測試。

我怎樣才能讓我的JSON文件看起來像下面?:

{ 
    "text": "Hi there, 



    This is a test." 
} 
+1

這不是有效的JSON – depperm

回答

2

JSON的一個不允許真正的換行符。如果你仍然想使用它們,你將不得不自己創建一個「json」作家。

編輯:這是一個將採取蟒蛇字典(你可以開始使用json.loads())和打印您需要的單向函數:

def print_wrong_json(dict_object): 
    print '{' 
    print ',\n'.join(['"{}": "{}"'.format(key, dict_object[key]) for key in dict_object]) 
    print '}' 
+0

完全喜歡這個功能的名字。 :3 – Takiro

2

那麼是可以做到的,因爲user1308345 shows in his answerit wouldn't be valid JSON anymore,你可能運行稍後在反序列化JSON時將問題轉化爲問題。

但如果你真的想這樣做,並且仍然希望有有效的JSON,你可以分割字符串(和刪除新線)和序列化他們作爲一個數組一樣建議在這個答案https://stackoverflow.com/a/7744658/1466757

然後您的JSON將類似於此

{ 
"text": [ 
    "Hi there,", 
    "", 
    "", 
    "", 
    "this is a test." 
    ] 
} 

反序列化之後,你將不得不把換行符回。