我從Excel文件加載和組織爲蟒蛇字典,其中每個鍵是數據庫表的名稱和它的值被定義爲詞典列表我的數據。該數據需要(行)如何使用sqlalchemy將數據加載到現有數據庫表中?
system_data = {table_name1:[{'col_1':val1, 'col2': val1...},
{'col_1':val2, 'col2': val2..}..],
table_name2:[{},{}..],[{},{}..]..}
被加載到現有的數據庫,同時選取table_names
鍵和值從system_data
。
此外,我使用ordered_table列表,我已經創建了特定的順序,以避免加載數據時FK問題。
這裏是代碼(1000個版本的我試過之一):
from sqlalchemy import create_engine
from sqlalchemy.sql import insert
def alchemy_load():
system_data = load_current_system_data()
engine = create_engine('mysql+pymysql://username:[email protected]/my_db')
conn = engine.connect()
for table_name in ordered_tables:
conn.execute(insert(table_name, system_data[table_name]))
print("System's Data successfully loaded into Database!")
此功能產生以下錯誤:
"TypeError: 'method' object is not iterable"
我已經浪費了幾乎所有的一天,在這(((
所有的在線示例都描述了用戶使用MetaData並創建自己的表格的情況......沒有關於如何將數據實際添加到現有表格中的問題
有一個解決方案,我的問題使用「數據集」庫。
代碼:
import dataset
def current_data():
db = dataset.connect(url='mysql+pymysql://user:[email protected]/my_db')
system_data = load_current_system_data()
for table_name in ordered_tables:
db[table_name].insert_many(system_data[table_name])
print("System's Data successfully loaded into Database!")
,但我不知道如何實現使用SQLAlchemy的驗證碼...
任何幫助將不勝感激。
您應該查看使用堆棧溢出時的SQLalchemy表對象的示例。 –
已經完成了這個工作,有很多「靜態」示例,您可以在其中創建表並加載數據。此外,互聯網上有幾十個「複製/粘貼」教程,實際上是相同的。我想我可以通過使用直接的驅動程序API(如MySQLdb或PyMySQL)來實現此目標......但是,如何使用SQLalchemy實現這一目標?你能提供一些代碼片段還是隻糾正我的代碼?謝謝。 – bravoelf
如果你有csv數據,它可以很容易地進入mysql。如果它必須在sqlalchemy中,則可以創建更小的幫助區域。因此是那些使用orms並陷入膠水陷阱的人的困境。 – Drew