cqc*_*991 7 python unicode json utf-8
我正在从 Python 2 切换到 3
在我的 jupyter 笔记本中,代码是
file = "./data/test.json"
with open(file) as data_file:
data = json.load(data_file)
Run Code Online (Sandbox Code Playgroud)
以前用python 2没问题,但现在切换到python 3后,它给了我错误
UnicodeDecodeError: 'gbk' codec can't decode byte 0xad in position 123: illegal multibyte sequence
Run Code Online (Sandbox Code Playgroud)
该test.json文件是这样的:
[{
"name": "Daybreakers",
"detail_url": "http://www.movieinsider.com/m4120/daybreakers/",
"movie_tt_id": "??"
}]
Run Code Online (Sandbox Code Playgroud)
如果我把中文删掉,就不会有错误了。
所以我该怎么做?
SO中有很多类似的问题,但我没有找到适合我的案例的好的解决方案。如果你找到一个适用的,请告诉我,我会关闭这个。
非常感谢!
打开文件时需要指定正确的编码。如果 JSON 是用 UTF-8 编码的,你可以这样做:
import json
fname = "test.json"
with open(fname, encoding='utf-8') as data_file:
data = json.load(data_file)
print(data)
Run Code Online (Sandbox Code Playgroud)
输出
[{'name': 'Daybreakers', 'detail_url': 'http://www.movieinsider.com/m4120/daybreakers/', 'movie_tt_id': '??'}]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8923 次 |
| 最近记录: |