【发布时间】:2019-12-01 21:07:58
【问题描述】:
我有一个包含以下列的 SQL 表:公司、产品、别名。
我需要只使用一个 SQL 执行查询从这个表中创建一个数据集。
公司栏有重复,我只需要为每个公司提供一本字典。每个公司都有自己的产品——公司字典中的每个产品都需要它自己的字典。每个公司和产品组合都有自己的别名。别名应位于最深层次词典中的列表内:公司字典>产品字典>别名列表
def test():
d = {}
cursor = conn.cursor(as_dict=True)
cursor.execute('SELECT FirmName, InfoSysName, Alias, WhereAmI_UserId FROM WhereAmIFirmInfoSysMapping_v')
for row in cursor:
if row['FirmName'] != '*':
d[row['FirmName']] = {}
d[row['FirmName']][row['InfoSysName']] = []
print d
conn.close()
我能够返回如下所示的字典:
{u'FirmA': {u'ProductZ': []}, {u'FirmB': {u'ProductZ': []}, {u'FirmA': {u'ProductZ': []}
但是,您可以看到只有我的 SQL 表中的最后一个产品被添加到公司字典中。我需要能够在 SQL 表中添加公司拥有的所有产品,并且只添加公司拥有的那些产品。
【问题讨论】:
标签: python sql python-2.7 dictionary