我试图解析一个json文件,该文件的值上有一些转义的unicode字符,需要进行一些处理。
当我打开文件进行处理时,Python将转义的字符转换为实际的ascii字符,但我需要保持转义的字符,这是由于以后处理这个文件的工具的一个要求。
我试着用不同的编码打开文件,也试了json.dump函数上的
ensure_ascii
选项(True和False)。
但问题似乎真的出现在我加载文件时,就像下面的例子一样。
这是一个简单的json文件,可以作为输入使用。
"id": "my_current_id", "name": "dockeradmin \u003e aclpolicy", "content": "description: Read \u0026 Execute permissions."这是我用来简化不同解决方案的测试的一个模型
import json
with open('./test.json', encoding='utf-8') as tfstateFile:
tfstateData = json.load(tfstateFile)
tfstateData['id'] = 'my_new_id'
print(tfstateData['id'])
print(tfstateData['name'])
print(tfstateData['content'])
resultFilePath = '/result/test_result.json'
with open(resultFilePath, 'w', encoding='utf-8') as resultStateFile:
json.dump(tfstateData, resultStateFile, indent=4, sort_keys=False, ensure_ascii=False)
当我使用提供的json作为输入时,我收到的输出是这样的。
>>> my_new_id
>>> dockeradmin > aclpolicy
>>> description: Read & Execute permissions.
输出文件也在对转义的字符进行解码。
"id": "my_new_id",
"name": "dockeradmin > aclpolicy",
"content": "description: Read & Execute permissions."
是否有可能加载json文件并保留字符串值上的转义字符?
结果的输出应该是。