添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
可爱的南瓜  ·  hive ...·  1 年前    · 
绅士的电脑桌  ·  java - "Refused to ...·  1 年前    · 

如何在Python中加载一个JSON文件,保留一些转义的Unicode字符

3 人关注

我试图解析一个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文件并保留字符串值上的转义字符?

结果的输出应该是。