首页 > 解决方案 > 使用 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()

标签: pythonmysqlpandas

解决方案


在实时 sql 数据库上测试您的脚本时,我总是会小心谨慎。如果您犯了错误,除非您有备份,否则您将覆盖您的信息。

你可以考虑这两个选项。

  1. 将您的数据从 csv 和 db 加载到单独的 df 中,然后左连接两个框架并将结果推送到 sql。

  2. 使用 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)

希望这可以帮助你


推荐阅读