如何使用Flask,postgres和Python上传csv文件并将数据输入数据库?

时间:2015-11-08 13:46:35

标签: python postgresql flask

尝试上传一个csv文件,打开它然后遍历行以将每个字段插入到postgres数据库中,我有2个(目前为止已确定)问题。我使用的是Flask而不是Django。

  1. 我得到一个缩进错误,虽然我不能为我的生活看到哪里。分辨

  2. heroku日志没有提供其他反馈,所以即使文件被正确打开和读取,我也不确定。

  3. 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. 上传,打开和插入代码是否正确?

1 个答案:

答案 0 :(得分:1)

您没有缩进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 library。没有必要尝试自己解析csv文件!