如何将人类可读的数据写入 JSON 文件
How to write human-readable data to to a JSON file
当我将文件从 python 导出到 json 文件时,它包含
这样的字符
{"-": "text", "menu": {"-": "node", "id": 2244676, "prev": "[2/40] \u0d2a\u0d4d\u0d30\u0d2f\u0d4b\u0d1c\u0d15 \u0d15\u0d4d\u0d30\u0d3f\u0d2f
我用过
with open('messages.json', 'w') as outfile:
json.dump(all_messages, outfile, cls=DateTimeEncoder)
在 python 中。如何将其转换为普通的 unicode 文本?
如果您希望输出 JSON 为 human-readable,请使用 UTF-8 编码和 ensure_ascii=False
参数:
with open('messages.json', 'w', encoding='utf8') as outfile:
json.dump(all_messages, outfile, cls=DateTimeEncoder,ensure_ascii=False)
如果您只想再次读回数据,json.load
会将其转换回 Unicode:
with open('messages.json', encoding='utf8') as infile:
data = json.load(infile)
简单字符串示例:
>>> s = '[2/40] പ്രയോജക ക്രിയ'
>>> print(json.dumps(s))
"[2/40] \u0d2a\u0d4d\u0d30\u0d2f\u0d4b\u0d1c\u0d15 \u0d15\u0d4d\u0d30\u0d3f\u0d2f"
>>> print(json.dumps(s,ensure_ascii=False))
"[2/40] പ്രയോജക ക്രിയ"
>>> out = json.dumps(s)
>>> out
'"[2/40] \u0d2a\u0d4d\u0d30\u0d2f\u0d4b\u0d1c\u0d15 \u0d15\u0d4d\u0d30\u0d3f\u0d2f"'
>>> json.loads(out)
'[2/40] പ്രയോജക ക്രിയ'
当我将文件从 python 导出到 json 文件时,它包含
这样的字符{"-": "text", "menu": {"-": "node", "id": 2244676, "prev": "[2/40] \u0d2a\u0d4d\u0d30\u0d2f\u0d4b\u0d1c\u0d15 \u0d15\u0d4d\u0d30\u0d3f\u0d2f
我用过
with open('messages.json', 'w') as outfile:
json.dump(all_messages, outfile, cls=DateTimeEncoder)
在 python 中。如何将其转换为普通的 unicode 文本?
如果您希望输出 JSON 为 human-readable,请使用 UTF-8 编码和 ensure_ascii=False
参数:
with open('messages.json', 'w', encoding='utf8') as outfile:
json.dump(all_messages, outfile, cls=DateTimeEncoder,ensure_ascii=False)
如果您只想再次读回数据,json.load
会将其转换回 Unicode:
with open('messages.json', encoding='utf8') as infile:
data = json.load(infile)
简单字符串示例:
>>> s = '[2/40] പ്രയോജക ക്രിയ'
>>> print(json.dumps(s))
"[2/40] \u0d2a\u0d4d\u0d30\u0d2f\u0d4b\u0d1c\u0d15 \u0d15\u0d4d\u0d30\u0d3f\u0d2f"
>>> print(json.dumps(s,ensure_ascii=False))
"[2/40] പ്രയോജക ക്രിയ"
>>> out = json.dumps(s)
>>> out
'"[2/40] \u0d2a\u0d4d\u0d30\u0d2f\u0d4b\u0d1c\u0d15 \u0d15\u0d4d\u0d30\u0d3f\u0d2f"'
>>> json.loads(out)
'[2/40] പ്രയോജക ക്രിയ'