簡體   English   中英

如何使用Flask,postgres和Python上傳一個csv文件並將數據輸入數據庫?

[英]how can I upload a csv file and enter the data into a database, using Flask, postgres and Python?

嘗試上傳一個csv文件,打開它,然后遍歷各行以將每個字段插入到postgres數據庫中,與此有關,我有2個問題(到目前為止已確定)。 我正在使用Flask而不是Django。

  1. 我遇到了縮進錯誤,盡管我一生都看不到哪里。 解決

  2. heroku日志沒有提供其他反饋,因此即使文件已正確打開和讀取,我也不確定。

csv文件是:

first_name last_name email etc. # in all 8 columns
John       Smith     john@website.com

和python代碼是:

@app.route("/uploadcsv", methods=['POST'])
def uploadcsv():
csvfile = request.files['file']
with open(csvfile):
    reader = csv.DictReader(csvfile)
    for row in reader:
        firstname = row['first_name']
        query = Prospect(first_name=firstname)
        db.session.add(query)
        db.session.commit()
        return "OK"

因此,有兩個問題:

  1. 壓痕問題是什么? 解決

  2. 該代碼是否正確用於上傳,打開和插入?

您尚未縮進for循環主體:

for row in data:
    first_name = row['first_name']
    sql = Prospect(first_name=first_name) #truncated for brevity
    db.session.add(sql)
    db.session.commit()

如果不是那樣,則可能是制表符和空格混合在一起。 Python可以處理任何一個,但不能同時處理兩個!

最好使用csv Python庫 無需嘗試自己解析csv文件!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM