python - 使用 pandas 数据框将数据写入 postgresql 时出错
问题描述
我正在尝试将 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()
这是打印后的结果
名称=jh.name
我经常收到错误
“系列”对象是可变的,因此它们不能被散列
我在谷歌上搜索了这个问题,但我无法解决这个问题。如果有任何其他方法可以将 csv 列数据保存在数据库列中,我们将不胜感激。
解决方案
完成!这是代码
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')
推荐阅读
- java - 在触摸另一个 EditText 后请求对 EditText 的焦点?
- python - 如何在 python 中读取许多具有不同名称的 .CSV 文件?
- sql-server - SSMS 17.8.1 Intellisense 未自动完成连接到 Azure 托管实例
- xamarin.ios - 物理设备地址上的 Xamarin.UITest 已在使用中
- java - 带有 Java 11、HTTPS 和 HTTP 2.0 的 Spring Boot 2
- css - 数据表巨大的利润顶部
- php - Laravel nova“类名必须是有效的对象或字符串”在self BelongsTo字段上
- jquery - Bootstrap .modal('show') 问题
- javascript - 使用 Javascript 写入表
- javascript - 在 webpack 构建中只包含 jquery slim?