Python 无法使用另一个dict列表中的dict附加dict列表

Python 无法使用另一个dict列表中的dict附加dict列表,python,mysql-python,Python,Mysql Python,又在谷歌上搜索了几个小时的答案,但似乎我的情况是独一无二的,或者我对Py的理解是独一无二的 我有一个字典列表,我们称之为sqlListOfDict,它是从MySQLdb.cursors.DictCursor查询中构建的,Py print会产生以下结果: [{'volYtday': 18083292, 'volToday': 49395261, 'time': datetime.timedelta(0, 34800), 'priceChgPct': Decimal('1.2400'),

又在谷歌上搜索了几个小时的答案,但似乎我的情况是独一无二的,或者我对Py的理解是独一无二的

我有一个字典列表,我们称之为sqlListOfDict,它是从MySQLdb.cursors.DictCursor查询中构建的,Py print会产生以下结果:

[{'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}]
[{'priceChgPct': '',
  'volYtday': '',
  'priceNom': '',
  'volDiffPct': '',
  'volToday': '',
  'time': '',
  'date': '',
  'secCode': '',
  'volDiff': ''}]
然后我有另一个字典列表,我们称之为myListOfDict,声明为空,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}]
[{'priceChgPct': '',
  'volYtday': '',
  'priceNom': '',
  'volDiffPct': '',
  'volToday': '',
  'time': '',
  'date': '',
  'secCode': '',
  'volDiff': ''}]
我需要将myListOfDict与sqlListOfDict中的特定词典按索引号一起追加,代码:

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)

你能分享你的实际代码吗?现在我想得更多了。你可以不打电话打印一行。fetchone…嗨,马丁,你指的是哪一个实际代码?谢谢。生成sqlListOfDict的代码。还有,你希望得到什么样的结果?嗨,杰森,没错打印sqlListOfDict[i]['anyKey']'不会带来悲伤。我需要为append做不同的事情吗?谢谢