当将pandas DataFrame写入sql时,是否可以通过以下方式使用with语句?
import sqlite3
import pandas as pd
with sqlite3.connect('database.db') as conn:
df = pd.read_sql("SELECT * FROM table", conn)
# add change to db
df.to_sql('table', conn, if_exists='replace', index=False)
从文档中
连接对象可用作自动提交或回滚事务的上下文管理器。发生异常时,事务将回滚;否则,交易已提交
import sqlite3
import pandas as pd
con = sqlite3.connect("database.db")
# Return the result as a list
with con:
result = con.execute("SELECT * FROM table").fetchall()
# Pass as engine to pandas
with con:
df = pd.read_sql("SELECT * FROM table", con)
# Close connection
con.close()
正如@Parfait正确指出的那样,上下文管理器正在处理由连接进行的事务,因此该con
对象应手动关闭。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句