gpt4 book ai didi

python - 写入 JSON 时如何不转义反斜杠

转载 作者:太空宇宙 更新时间:2023-11-04 04:06:44 30 4
gpt4 key购买 nike

我正在尝试读取一个 JSON 文件并向其添加一个新的 key,value 对。然后将 JSON 文件写回。示例

# Read the JSON and add a new K,V
input_file_path = os.path.join(os.path.dirname(__file__), 'test.json')
input_file = open(input_file_path, 'r')
data = json.load(input_file)
data['key'] = os.environ.get('KEY', '') #<-- Adding a new K,V
input_file.close()

# Write the JSON to tmp.
output_file = open('/tmp/' + 'test.json', 'w')
json.dump(data, output_file, indent=4)
output_file.close()

我的输入 JSON 看起来像这样

{
"type": "account"
}

我的环境变量 KEY 看起来像这样-----BEGINKEY-----\nVgIBMIE

写入 tmp 的最终 JSON 文件如下所示

{
"private_key": "-----BEGINKEY-----\\nVgIBMIIE",
"type": "account"
}

我不明白为什么反斜杠被转义了?我怎样才能避免这种情况?

最佳答案

该程序将您的输入字符串视为原始字符串,因此会添加额外的 \。原来的 '\' 实际上并没有转义任何东西,所以要在 Python 中将其表示为字符串,您需要对它进行转义。然而,正如您所见,这可能会有问题。您可以使用以下命令将字符串强制恢复为 unicode 格式:

import codecs

raw_val = os.environ.get('KEY', '')
val = codecs.decode(raw_val, 'unicode_escape')
data['key'] = val

关于python - 写入 JSON 时如何不转义反斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57193125/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com