Распакуйте ответ API, прочитайте каждый CSV в память, преобразуйте в JSON и сохраните в S3

#json #amazon-s3 #python-requests

Вопрос:

Приведенный ниже код принимает ответ, возвращающий zip-файл из нескольких csv-файлов. В настоящее время я могу хранить его локально с помощью приведенного ниже, но то, что я хочу сделать, — это поместить каждый csv-файл в виде заархивированного объекта json в S3. Есть идеи о том, как выполнить приведенный ниже код для этого?

 import requests
import zipfile
import io
url = "https://bingads.com"
payload={}
headers = {
  'Content-Type': 'application/zip',
}
r = requests.request("GET", url, headers=headers, data=payload)
z = zipfile.ZipFile(io.BytesIO(r.content))
a = z.extractall("pwd")
 

Ниже обычно приведен код, который я использую для отправки в s3.

 memory = io.BytesIO()
   
with gzip.GzipFile(fileobj=inmem, mode='wb') as fh:
    with io.TextIOWrapper(fh, encoding='utf-8') as wrapper:
        wrapper.write(json.dumps(json_object))
memory.seek(0)
obj = s3_resource.Object(s3bucket,s3path).upload_fileobj(memory)