簡體   English   中英

用漂亮的打印方式在JSON中用新行保存python變量

[英]Saving python variable with new lines in JSON with pretty print

我正在從Python的CSV文件中讀取此文本。

Hi there,



This is a test.

並將其存儲為可變text

我正在嘗試使用json.dump()在JSON文件中寫入此變量,但該變量已轉換為:

'\\ ufeff您好,\\ n \\ n \\ xa0 \\ n \\ n這是一項測試。

如何使我的JSON文件如下所示?:

{
  "text": "Hi there,



    This is a test."
}

JSON不允許使用實際的換行符。 如果仍然要使用它們,則必須創建自己的“ json”編寫器。

編輯:這是將采用python dict(您可以使用json.loads()獲得)並按所需方式打印的函數:

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

很好,這可以完成,如user1308345在其答案中所示,它不再是有效的JSON,並且稍后在反序列化JSON時可能會遇到問題。

但是,如果您確實想要這樣做,並且仍然想要有效的JSON,則可以拆分字符串(並刪除新行),並將其序列化為數組,如此答案中所建議的那樣https://stackoverflow.com/a/ 1466757分之7744658

然后您的JSON看起來像這樣

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

反序列化之后,您必須重新插入換行符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM