Как прочитать файл в формате json из GCS и записать в таблицу

У меня есть сжатие json с файлом gzip (.json.gz), хранящееся в корзине в Google Cloud Storage, в котором я хочу прочитать его и скопировать в таблицу postgres. Файл json.gz, который у меня есть, это просто файл json без вложенного объекта, например:

[{
“date”: “2019-03-10T07:00:00.000Z”,
“type”: “chair”,
“total”: 250.0,
"payment": "cash"
},{
“date”: “2019-03-10T07:00:00.000Z”,
“type”: “shirt”,
“total”: 100.0,
"payment": "credit card"
},{
.
.
}]

Ранее я проделал похожую работу, как это с CSV-файлом, в котором я могу использовать download_as_string функция и хранится в переменной и использовать StringIO преобразовать эту переменную в файловый объект и использовать copy_expert() функция с запросом ( эта ссылка)

Итак, как я могу прочитать файл json.gz в GCS и записать его в таблицу с Python?

Спасибо

1 ответ

Решение

Чтобы прочитать данные, я бы использовал gcsfs, интерфейс Python для GCS:

import gcsfs
import gzip
import json

fs = gcsfs.GCSFileSystem(project='my-project')
with fs.open('bucket/path.json.gz') as f:
    gz = gzip.GzipFile(fileobj=f) 
    file_as_string = gz.read()
    your_json = json.loads(file_as_string)

Теперь, когда у вас есть JSON, вы можете использовать тот же код, который вы использовали с CSV.

Другие вопросы по тегам