通过SQLAlchemy创建字典

2024-09-30 06:27:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图找到一种方法,可以使用SQLAlchemy和Python通过数据库中的两列创建字典,而不使用for循环,因为这将导致1000多个查询。在1个查询中实现这一点的方法将非常棒,但我被难住了。你知道吗

例如,给定一个表:

商品品牌

麦片

三星手机

麦片粥

苹果手机

水·达萨尼

它将产生一个字典:{courine':['FrostedFlakes','Cheerios'],'Phone':['Samsung','Apple'],'Water':['Dasani']} 并将每个相同的命名项目附加其品牌。你知道吗


Tags: 方法苹果数据库for字典sqlalchemyphone商品
2条回答

您可以在单个数据库查询中执行此操作,但必须遍历所有返回的行,以便按项目对品牌进行分组。你知道吗

from collections import defaultdict

class Items(Base):
    item = Column(String)
    brand = Column(String)

results = defaultdict(list)
for item, brand in session.query(Items.item, Items.brand).all():
    results[item] += [brand]

如果表位于数据帧中,则可以使用groupby操作来完成此操作。你知道吗

尝试:

import pandas as pd
import sqlalchemy as sa

engine = sa.create_engine('db connection string')
df = pd.read_sql_table('Table',engine)
df.groupby('Item')['Brand'].apply(list).to_dict()

相关问题 更多 >

    热门问题