在JSON中以漂亮的打印格式保存python变量和新行
我正在从Python中的CSV文件中读取此文本在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”编写器
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.