Мне нужно прочитать несколько файлов json.gz, используя Dask.Я пытаюсь добиться этого с помощью dask.bag.read_text (имя файла) .map (json.loads), но вывод представляет собой вложенный список (файлы содержат списки словарей), в то время как я хотел бы получить просто списоксловарей.
Ниже приведен небольшой пример, который воспроизводит мою проблему.
import json
import gzip
import dask.bag as db
dict_list = [{'id': 123, 'name': 'lemurt', 'indices': [1,10]}, {'id': 345, 'name': 'katin', 'indices': [2,11]}]
filename = './test.json.gz'
# Write json
with gzip.open(filename, 'wt') as write_file:
json.dump(dict_list , write_file)
# Read json
with gzip.open(filename, "r") as read_file:
data = json.load(read_file)
# Read json with Dask
data_dask = db.read_text(filename).map(json.loads).compute()
print(data)
print(data_dask)
Я хотел бы получить первый вывод:
[{'id': 123, 'name': 'lemurt', 'indices': [1, 10]}, {'id': 345, 'name': 'katin', 'indices': [2, 11]}]
Но вместо этого я получаювторой:
[[{'id': 123, 'name': 'lemurt', 'indices': [1, 10]}, {'id': 345, 'name': 'katin', 'indices': [2, 11]}]]