python - 使用 python 脚本和 csv 文件更新数据库
问题描述
我有一个示例 csv 文件
number name age
1 John K, 40
2 Jordan 35
3 Kristen 25
4 Prime 33
我也有一个样本表mysql
id number age
1 1
2 3
3 4
4 2
如何使用 python 和我的 csv 文件更新表格?
期望的结果
id number age
1 1 40
2 3 25
3 4 33
4 2 35
我正在考虑使用更新表格
query = update table1 set age = {} where number = {}
如何遍历我的 csv 并使用 python 相应地更新表?
编辑
解决方案:
db = create_engine('mysql+mysqlconnector://{0}:
{1}@{2}/{3}'.format(database_username, database_password, database_ip,
database_name))
conn = db.connect()
data= pd.read_csv('youFileName.csv', engine='python')
for index, row in data.iterrows():
age= row['age']
number= row['number']
args = (age, number)
conn.execute(UPDATE_QUERY, args)
conn.close()
解决方案
在实时 sql 数据库上测试您的脚本时,我总是会小心谨慎。如果您犯了错误,除非您有备份,否则您将覆盖您的信息。
你可以考虑这两个选项。
将您的数据从 csv 和 db 加载到单独的 df 中,然后左连接两个框架并将结果推送到 sql。
使用 age 变量创建一个额外的 sql 表,并将这些表连接到 sql 中。
如果您仍想尝试您的解决方案,您可以使用 pandas 循环浏览您的 csv。
df = pd.DataFrame({'name':['John K,','Jordan','Kristen','Prima'],
'age' : [40,35,25,33]})
for index, rows in df.iterrows():
print(rows.age)
希望这可以帮助你
推荐阅读
- javascript - D3 无法更新图表
- javascript - 如何为倒数计时器添加暂停功能?
- javascript - 如何使用贝宝代码启用贝宝稍后按钮?
- javascript - 如何将下拉列表中的所有选定项目保存到我的数据库表中
- excel - 图像/形状出现错误 VBA Excel
- crystal-reports - Crystal Reports 8.5 报表运行存储过程两次
- qt - 堆栈布局模板
- azure - 为什么找不到资源的 Azure 模板错误?
- sharepoint - Sharepoint 2013 API / 文件版本。提取自定义共享点文件属性的版本历史记录
- jquery - 对控制器功能的 AJAX 请求