我正在尝试将csv列值保存在postgres数据库中。我用熊猫来获取CSV列值。但是每当我尝试将列值保存在数据库表列中时,都会出现错误。 这是我的代码:
import pandas as pd
file = request.files['csvFile[]']
print('file.filename: ',file.filename)
jh = pd.read_csv(file, dtype={"name": str})
names = jh.name
print(names)
user = GenderInfo(name=jh.name)
db.session.add(user)
db.session.commit()
这是打印后的结果
names = jh.name
我经常收到错误消息
'Series'对象是可变的,因此不能被散列
我在google上搜索了此问题,但我无法解决。有关此问题的任何帮助,或者是否还有其他方法可以将csv列数据保存在数据库列中。
答案 0 :(得分:0)
完成了! 这是代码
def upload_cs():
file = request.files['excelFile[]']
stream = io.StringIO(file.stream.read().decode("UTF8"), newline=None)
csv_input = csv.DictReader(stream)
# Validate and deserialize input
data, errors = genderInfoDto.load(file)
print('data: ', data)
for row in csv_input:
jh = GenderInfo.query.filter_by(name=row['name']).first()
print('GenderInfo: ', jh)
if jh:
return Response(json.dumps({'status': 'failed', 'message': 'gender already exists.'}), status=200,
mimetype='application/json')
print(row['name'])
user = GenderInfo(row['name'])
db.session.add(user)
db.session.commit()
result = genderInfoDto.dump(user).data
stream.seek(0)
return Response(json.dumps({'status': 'success', 'message': 'file upload successfully .', 'data': result}),
status=200, mimetype='application/json')