2017-10-25 58 views
2

S3バケットには、Pythonで解析して辞書に変換するCSVファイルがあります。 Boto3を使用して、私はs3.get_object(<bucket_name>, <key>)関数を呼び出し、それは明らかに私が望むデータを含む"Body" : StreamingBody()のキーと値のペアを含む辞書を返します。私のpythonファイルでPython - S3バケットから取得したCSVファイルを読み込むには?

が、私はimport csvを追加し、私はcsvファイルを読み込む方法については、オンラインで参照例きた、次のようなファイル名を渡す:

with open(<csv_file_name>, mode='r') as file: 
reader = csv.reader(file) 

しかし、私はわかりませんそれが可能であれば、StreamBodyからcsvファイル名を取得する方法。もしそうでなければ、PythonでCSVファイルを読む良い方法がありますか?ありがとう!

編集:私がAWS Lambdaでこれをやっていることを追加したいと思っていて、ラムダでパンダを使用する際の文書化された問題があるので、私はパンダではなくcsvライブラリを使用したかったのです。

+0

です(あなたがかもしれないがそれを最初に解読し、それを線に分割しなければならない)。 –

答えて

3

csv.readerにはファイルは必要ありません。ファイルやリストを含む行を繰り返し処理するものはすべて使用できます。

したがって、ファイル名は必要ありません。応答['Body']の行を直接リーダーに渡してください。それを行う1つの方法は、 `)あなたは)(お読みください。`応答[「ボディ」]のようなものでCSVデータを読み込み、 `してから(csv.reader`に結果を渡すことができ

lines = response['Body'].read().splitlines(True) 
reader = csv.reader(lines) 
関連する問題