gpt4 book ai didi

python - 尝试写入 JSON 文件时出现 UnicodeEncodeError

转载 作者:太空狗 更新时间:2023-10-30 03:03:54 25 4
gpt4 key购买 nike

给定输入文件的内容:

{ "symbol": "°C" }

还有这段代码:

import sys
import json

with open(sys.argv[1], 'r') as ifile, open(sys.argv[2], 'w') as ofile:
json.dump(json.load(ifile), ofile, indent=4, ensure_ascii=False)

我得到一个错误:

$ python2.7 play.py input.json output.json
Traceback (most recent call last):
File "play.py", line 5, in <module>
json.dump(json.load(ifile), ofile, indent=4, ensure_ascii=False)
File "/usr/lib/python2.7/json/__init__.py", line 190, in dump
fp.write(chunk)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xb0' in position 1: ordinal not in range(128)

但是 Python 3 工作正常:

$ python3.3 play.py input.json output.json
$ cat output.json
{
"symbol": "°C"
}

最佳答案

您可以使用 codecs模块通过声明文件的编码来处理它:

import sys
import json
import codecs

with codecs.open(sys.argv[1], 'r', 'utf-8') as ifile, codecs.open(sys.argv[2], 'w', 'utf-8') as ofile:
json.dump(json.load(ifile), ofile, indent=4, ensure_ascii=False)

关于python - 尝试写入 JSON 文件时出现 UnicodeEncodeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17665213/

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