尝试上传一个csv文件,打开它然后遍历行以将每个字段插入到postgres数据库中,我有2个(目前为止已确定)问题。我使用的是Flask而不是Django。
我得到一个缩进错误,虽然我不能为我的生活看到哪里。分辨
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"
所以,有两个问题:
什么是缩进问题?分辨
上传,打开和插入代码是否正确?
答案 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文件!