将字典键映射到Mysql数据库表列

时间:2018-06-14 11:42:36

标签: mysql pandas

我需要帮助来弄清楚如何使用我的MySQL数据库表列来映射字典键。

我想在我的MySQL数据库表列中插入字典键值,我相信在插入值之前我必须先进行正确的键列映射,否则它将失败&可能会因数据损坏而成功。

非常感谢任何帮助或链接如何做。

2 个答案:

答案 0 :(得分:0)

假设您使用SQLAlchemy引擎与MySQL数据库通信,您可以使用pandas.to_sql轻松插入。

以下是示例代码:

import pandas as pd
from sqlalchemy import create_engine

engine = create_engine('...')  # fill in the connection string

# generate the list of customer dicts
cust1 = {"fname": "john", "lname": "Davis", "custid": 12345, "City": "Houston"}
cust2 = {"fname": "jane", "lname": "Elvis", "custid": 67890, "City": "NewYork"}
customers = [cust1, cust2]

# convert to a DataFrame
df = pd.DataFrame(customers)

# reorder columns so that it is the same as the table
df = df[['fname', 'lname', 'custid', 'City']] 

# Do the insert
df.to_sql(table_name, engine, if_exists='append', index=False)  

答案 1 :(得分:0)

如果你使用Sqlalchemy,那么bulk_save_objects会比pandas.to_sql快得多

s = Session()
objects = [
    Customer(fname="john"), # map your dict to the ORM class object
    Customer(fname="jane")
]
s.bulk_save_objects(objects)
s.commit()

http://www.devx.com/dbzone/optimize-inserts-using-sqlalchemy.html