簡體   English   中英

無法將其他字典列表中的字典附加到字典列表中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM