【问题标题】:Write dictionary of lists to SQL Server via Python通过 Python 将列表字典写入 SQL Server
【发布时间】:2020-10-04 04:17:12
【问题描述】:

我有一个列表字典,需要将其写入 SQL Server,其中字典键是列名,字典值是大型值列表(目前约为 30,000,可能会增长到 50,000+)。

数据来自 REST API,经过转换并创建并写入一些新值。

我有一个在 Azure 上运行的工作代码,它使用 pandas 来执行此操作,但是当表从 80 列增长到 110 列时,Azure 开始崩溃,所以现在我编写了一些东西来处理所有数据字典中的转换,我只需要将字典写入 SQL。

字典的一个小例子如下所示:

data_dict = {'company': [1, 1, 15, None], 'net_amount': [$200, $250, $150, $100], 'transaction_id': [11111, 11111, 11112, 11113]}

我想过将它连接成一个字符串,但这会造成漏洞,我知道必须有一个库可以做到这一点,但比 pandas 更轻。

任何帮助将不胜感激。

我正在运行 3.7+,目前正在使用 SQLAlchemy 创建引擎。可以将语句准备为字符串或使用 pandas 以外的库。

【问题讨论】:

    标签: python sql python-3.x dictionary azure-functions


    【解决方案1】:

    对于将来搜索的任何人,我设法通过将列表字典转换为字典列表来找到解决方案。然后可以通过 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)
    

    【讨论】:

      猜你喜欢
      • 2016-03-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-08
      • 1970-01-01
      • 2021-03-22
      • 2014-06-17
      • 2022-10-18
      • 2020-08-12
      相关资源
      最近更新 更多