Aks*_*ale 4 python csv amazon-s3 amazon-web-services
我有一个字典列表,例如
temp_dict = [{'id':'1', 'name':'john'},{'id':'2', 'name':'jake'},{'id':'3', 'name':'jacob'}]
是否有一种方法可以直接将此字典作为 csv 文件(管道分隔)写入 S3。我不想从此列表中在本地创建 csv 文件,然后将其复制到 S3。
小智 8
这是一个更优雅且非常快的解决方案,特别是对于大型字典列表。
import io
import csv
data = [{"param1": 1, "param2": 2}, {"param1": 1, "param2": 3}]
stream = io.StringIO()
headers = list(data[0].keys())
writer = csv.DictWriter(stream, fieldnames=headers)
writer.writeheader()
writer.writerows(data)
csv_string_object = stream.getvalue()
Run Code Online (Sandbox Code Playgroud)
使用这个表示 CSV 文件内容的字符串对象,您可以通过 boto3 以您喜欢的方式将其直接插入到 S3 中。
session = boto3.session.Session(profile_name=<your_profile_name>)
resource = session.resource("s3")
resource.Object(<s3_bucket>, <s3_key>).put(Body=csv_string_object)
Run Code Online (Sandbox Code Playgroud)
请注意,您的 CSV 文件现已加载到内存中,并且可能会因大量数据而崩溃。
| 归档时间: |
|
| 查看次数: |
8481 次 |
| 最近记录: |