1

答えを得るために再び何時間もグーグルで調べましたが、私の状況は独特であるか、または Py の私の理解は...ええと、独特のようです。

MySQLdb.cursors.DictCursor クエリから構築された辞書 (sqlListOfDict と呼びましょう) のリストがあります。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}]

次に、空の宣言された辞書の別のリスト (myListOfDict と呼びましょう) があり、Py print は次のようになります。

[{'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])

出来た!最初のケースで何が間違っていましたか? 助けてくれてありがとう。

4

1 に答える 1