[英]Can't append a list of dicts with dict from another list of dicts
再次搜索了幾個小時,但似乎我的處境是獨一無二的,或者我對Py的理解是...呃,獨一無二。
我有一個從MySQLdb.cursors.DictCursor查詢構建的字典列表(我們稱它為sqlListOfDict),Py打印會產生以下結果:
[{'volYtday': 18083292,
'volToday': 49395261,
'time': datetime.timedelta(0, 34800),
'priceChgPct': Decimal('1.2400'),
'volDiffPct': 173.15414140301445,
'priceNom': Decimal('6.5300'),
'date': datetime.date(2013, 4, 30),
'secCode': 'xoxoxo',
'volDiff': 31311969}]
然后,我有另一個字典列表(我們稱其為myListOfDict),聲明為空,Py打印得出此結果:
[{'priceChgPct': '',
'volYtday': '',
'priceNom': '',
'volDiffPct': '',
'volToday': '',
'time': '',
'date': '',
'secCode': '',
'volDiff': ''}]
我需要通過索引號,代碼從sqlListOfDict附加myListOfDict特定的字典:
myListOfDict.append(sqlListOfDict[0])
不高興,myListOfDict仍然是聲明的(空),Py不提供任何回溯。
我做了一些實驗:
listDictA = [dict.fromkeys(['secCode', 'volDiff'])]
listDictB = [{'secCode': 'valB1', 'volDiff': 1000},
{'secCode': 'valB2', 'volDiff': 1000},
{'secCode': 'valB3', 'volDiff': 1000},
{'secCode': 'valB4', 'volDiff': 1000},
{'secCode': 'valB5', 'volDiff': 1000},
{'secCode': 'valA1', 'volDiff': 1000}]
運行相同的命令:
listDictA.append(listDictB[0])
有效! 第一種情況我做錯了什么? 感謝您的幫助。
聽起來好像您期望myListOfDict
中的第一項被sqlListOfDict
第一項的值填充。
您說myListOfDict
聲明為空 ,但事實是您不需要這種聲明。 在Python中,您可以將所需的任何對象追加到列表中,而無需聲明要放入的類型。
我將簡化您的示例,並希望能將其清除:
>>> myListOfDict = [] # create an empty list
>>> sqlListOfDict = [{'volYtday': 18083292,
'volToday': 49395261}]
>>> myListOfDict.append(sqlListOfDict[0])
>>> myListOfDict
[{'volYtday': 18083292, 'volToday': 49395261}]
另外,如果要處理兩個列表,則可能要考慮用第二個擴展第一個列表,而不是僅追加第一個。
>>> myListOfDict.extend(sqlListOfDict)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.