Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JSON中以漂亮的打印格式保存python变量和新行_Python_Json_Pretty Print - Fatal编程技术网

在JSON中以漂亮的打印格式保存python变量和新行

在JSON中以漂亮的打印格式保存python变量和新行,python,json,pretty-print,Python,Json,Pretty Print,我正在从Python中的CSV文件中读取此文本 Hi there, This is a test. 并将其存储到变量文本中 我试图用JSON.dump()将此变量写入JSON文件,但它正在转换为: '\ufefhi在那里,\n\n\xa0\n\n这是一个测试 如何使我的JSON文件看起来像下面的文件 { "text": "Hi there, This is a test." } JSON不允许真正的换行符。如果您仍然想使用它们,那么您必须创建自己的“json”编写器

我正在从Python中的CSV文件中读取此文本

Hi there,



This is a test.
并将其存储到变量
文本中

我试图用JSON.dump()将此变量写入JSON文件,但它正在转换为:

'\ufefhi在那里,\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 '}'

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 '}'
当然,这是可以做到的,但是在以后反序列化JSON时,您可能会遇到问题

但是,如果您真的想这样做,并且仍然希望使用有效的JSON,那么可以拆分字符串(并删除新行),并将其序列化为一个数组,如本答案中所建议的那样

那么您的JSON将与此类似

{
 "text": [
    "Hi there,",
    "",
    "",
    "",
    "this is a test."
  ]
}
反序列化后,必须将换行符重新插入。

可以这样做,但稍后反序列化JSON时可能会遇到问题

但是,如果您真的想这样做,并且仍然希望使用有效的JSON,那么可以拆分字符串(并删除新行),并将其序列化为一个数组,如本答案中所建议的那样

那么您的JSON将与此类似

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

反序列化后,您必须将换行符放回。

这是无效的json这是无效的jsontology。我喜欢该函数名:3我非常喜欢这个函数名:3.