我需要帮助来弄清楚如何使用我的MySQL数据库表列来映射字典键。
我想在我的MySQL数据库表列中插入字典键值,我相信在插入值之前我必须先进行正确的键列映射,否则它将失败&可能会因数据损坏而成功。
非常感谢任何帮助或链接如何做。
答案 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