[英]How to parse csv into dictionary in Python without saving file?
用戶上傳的 CSV 文件,然后我想將其解析為字典而不實際保存上傳的文件。
我找到了這個參考並嘗試了它https://riptutorial.com/flask/example/32038/parse-csv-file-upload-as-list-of-dictionaries-in-flask-without-saving但它給了我一個錯誤
@app.route('/upload', methods=['POST'])
def fileUpload():
if request.method == 'POST':
f = request.files['file']
fstring = f.read()
csv_dicts = [{k: v for k, v in row.items()} for row in
csv.DictReader(fstring.splitlines(), skipinitialspace=True)]
return "success"
<form action = "/upload" method = "POST" enctype="multipart/form-data">
<input type = "file" name = "file">
<input type = submit>
</form>
_csv.Error:迭代器應該返回字符串,而不是字節(文件應該以文本模式打開)
我該如何管理這個錯誤?
您的錯誤表明您的文件已編碼,請對其進行解碼。
fstring = f.read().decode("utf8")
只需將文件對象本身傳遞給 csv dict 閱讀器。 它適用於大多數至少.read
方法的類文件對象。
@app.route('/upload', methods=['POST'])
def fileUpload():
if request.method == 'POST':
csv_dicts = [{k: v for k, v in row.items()} for row in
csv.DictReader(request.files['file'], skipinitialspace=True)]
return "success"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.