擅长:python、mysql、java
<p>这是一个更加优雅和快速的解决方案,特别是对于大字典列表</p>
<pre><code>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()
</code></pre>
<p>使用这个表示CSV文件内容的字符串对象,您可以通过boto3以您喜欢的任何方式直接将其插入S3</p>
<pre><code>session = boto3.session.Session(profile_name=<your_profile_name>)
resource = session.resource("s3")
resource.Object(<s3_bucket>, <s3_key>).put(Body=csv_string_object)
</code></pre>
<p>注意,您的CSV文件现在已加载到内存中,可能会因大量数据而崩溃</p>