我有一個(gè)列表字典,需要寫(xiě)入 SQL Server,其中字典鍵是列名,字典值是大型值列表(當(dāng)前約為 30,000,可能會(huì)增長(zhǎng)到 50,000 以上)。數(shù)據(jù)來(lái)自 REST API,經(jīng)過(guò)轉(zhuǎn)換并創(chuàng)建一些新值,然后寫(xiě)入。我有一個(gè)在 Azure 上運(yùn)行的工作代碼,它使用 pandas 來(lái)執(zhí)行此操作,但是當(dāng)表從 80 列增長(zhǎng)到 110 列時(shí),Azure 開(kāi)始崩潰,所以現(xiàn)在我編寫(xiě)了一些代碼來(lái)處理 a 中的所有數(shù)據(jù)轉(zhuǎn)換。字典,我只需將該字典寫(xiě)入 SQL 即可。字典的一個(gè)小例子如下所示:data_dict = {'company': [1, 1, 15, None], 'net_amount': [$200, $250, $150, $100], 'transaction_id': [11111, 11111, 11112, 11113]}我想過(guò)將它連接成一個(gè)字符串,但這會(huì)產(chǎn)生漏洞,而且我知道必須有一個(gè)庫(kù)可以做到這一點(diǎn),但比 pandas 更輕。任何幫助將不勝感激。我正在運(yùn)行 3.7+,當(dāng)前使用 SQLAlchemy 來(lái)創(chuàng)建引擎??梢詫⒄Z(yǔ)句準(zhǔn)備為字符串或使用 pandas 以外的庫(kù)。
1 回答

海綿寶寶撒
TA貢獻(xiàn)1809條經(jīng)驗(yàn) 獲得超8個(gè)贊
對(duì)于任何將來(lái)搜索的人,我設(shè)法通過(guò)將列表字典轉(zhuǎn)換為字典列表來(lái)找到解決方案。然后可以通過(guò) SQLAlchemy 上傳。
data_list = [dict(zip(data_dict, t)) for t in zip(*data_dict.values())]
engine = sqlalchemy.create_engine(
"mssql://......",
echo=False)
meta = MetaData()
meta.reflect(engine, only=['TABLENAME'])
table = sqlalchemy.Table('TABLENAME', meta, autoload=True, autoload_with=engine)
engine.execute(table.insert(), data_list)
添加回答
舉報(bào)
0/150
提交
取消