Как прочитать файл в формате json из GCS и записать в таблицу - PullRequest
1 голос
/ 19 мая 2019

У меня есть сжатие json с файлом gzip (.json.gz), которое хранится в корзине в облачном хранилище Google, в котором я хочу прочитать его и скопировать в таблицу 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 Ответ

2 голосов
/ 19 мая 2019

Чтобы прочитать данные, я бы выбрал 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.

...