我有一个包含以下列的SQL表:Firm、Product、Alias
我只需要使用一个SQL Execute查询就可以从这个表中创建一个数据集。
公司栏有两本,每个公司我只需要一本字典。每个公司都有自己的产品——公司词典中的每个产品都需要自己的词典。每个公司和产品组合都有自己的别名。别名应该位于最深层词典的列表中:Firm Dict>;产品目录>;别名列表
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表中的最后一个产品被添加到Firm dictionary中。我需要能够在SQL表中添加公司的所有产品,并且只添加公司拥有的产品。
你一直在重写你创建的字典。您需要稍微更改结构并添加代码,以首先检查公司是否已添加到字典中:
相关问题 更多 >
编程相关推荐