Как прочитать файл в формате 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.