我有一个dicts列表(例如[{'a': 'b', 'c': 'd'}, {'e': 'f', 'g': 'h'}]
),我希望使用Python boto包将其存储在s3中。
一种方法是遍历列表,写入文件对象f
,这样f
的每一行都是一个json对象。然后我可以使用key.set_contents_from_file(f)
。这是正确/最好的方式吗?
似乎写入本地文件是不必要的中间步骤,但我不确定。
答案 0 :(得分:2)
要跳过写入文件步骤,您可以使用key.set_contents_from_string(str)
直接输出您的dicts值。
请参阅:http://boto.readthedocs.org/en/latest/ref/s3.html#module-boto.s3.key
(set_contents_from_string
的CTRL + F)
另一种迂回方式(避免写入磁盘)将使用set_contents_from_stream
,并创建一个内存中的“文件”(使用StringIO等),然后传递给该函数。