【发布时间】:2018-04-30 04:54:30
【问题描述】:
我想直接将文件读取到 python 而无需保存它 - zip 文件相对较小并且绝对适合 mem。
我目前正在尝试这个:
import urllib
import json
access_url = urllib.request.urlopen('http://api.eia.gov/bulk/COAL.zip')
data = json.loads(access_url.read().decode())
但我得到了错误: UnicodeDecodeError:“utf-8”编解码器无法解码位置 15 中的字节 0xa0:无效的起始字节
什么额外的步骤可以解决这个问题?
我正在使用 python 3.6。
谢谢!
【问题讨论】:
-
这是一个 zip 文件,你想要什么?看到这个
https://docs.python.org/2/library/zipfile.html -
您的 COAL.zip 究竟包含什么?您现在的问题是您将压缩存档视为 json 数据,这是不正确的。您需要从存档中提取包含 json 数据的实际文件。例如,您知道存档中文件的名称吗?存档是否包含许多文件?
-
@Hannu 它包含一个名为 COAL.txt 的文件,它是 json 格式。
-
@RaminNietzsche 是的,但是我想解压缩并获取 json,而不必将其保存在磁盘中,因为这是小文件...