如何在Python中打开json.gz文件并返回字典
我下载了一个压缩的json文件,并希望将其作为字典打开 我使用了如何在Python中打开json.gz文件并返回字典,python,json,python-3.x,Python,Json,Python 3.x,我下载了一个压缩的json文件,并希望将其作为字典打开 我使用了json.load,但是数据类型仍然给我一个字符串。 我想从json文件中提取一个关键字列表。即使我的数据是一个字符串,有没有办法做到这一点? 这是我的密码: 导入gzip 导入json 使用gzip.open(“19.04_association_data.json.gz”,“r”)作为f: data=f.read() 将open('association.json','w')作为json_文件: json.dump(data.d
json.load
,但是数据类型仍然给我一个字符串。
我想从json文件中提取一个关键字列表。即使我的数据是一个字符串,有没有办法做到这一点?
这是我的密码:
导入gzip
导入json
使用gzip.open(“19.04_association_data.json.gz”,“r”)作为f:
data=f.read()
将open('association.json','w')作为json_文件:
json.dump(data.decode('utf-8'),json_文件)
用open(“association.json”,“r”)作为read_it:
关联数据=json.load(读取)
打印(类型(关联数据))
#实际输出为'str',但我预计为'dic'
在第一个块中,您已经获得了未压缩的字符串,无需再次打开它
import gzip
import json
with gzip.open("19.04_association_data.json.gz", "r") as f:
data = f.read()
j = json.loads (data.decode('utf-8'))
print (type(j))
使用标准库()中的gzip
包打开文件,然后将其直接读入json.loads()
:
我再次转储数据,因为一旦我运行了上面的代码,它就会显示“json.decoder.jsondecoderror:Extra data:line 2 column 1(char 2350)”。我在想,因为我的gz文件有多个json对象,所以我将它们全部转储到一个文件中。@CarolineCheng我想你在其中有一个json不支持的列表。
import gzip
import json
with gzip.open("19.04_association_data.json.gz", "rb") as f:
data = json.loads(f.read(), encoding="utf-8")