私はPythonの新機能で、既存のディクショナリをループするスクリプトを作成しようとしています。既存の辞書は、私がオンラインで見つけたいくつかのコードから作成され、SQLクエリから行を1つの辞書に変換します。私はこれが少し冗長であることを知っています、私はちょうど私が望むものを表示させるためにこのコードを編集する方法を知らない。 、とにかくhttps://geert.vanderkelen.org/2010/fetching-rows-as-dictionaries-with-mysql-connectorpython/Forループでディクショナリを作成するときにネストされたディクショナリ値を上書きしないようにする
私はこれを行う際に、ネストされた辞書が自動的にネストされた辞書のための辞書のキーが変更されていても、以前のネストされた辞書を上書き:
はここでスクリプトです。私は検索し、同じ問題でいくつかの他のStackOverflowの質問を見つけましたが、私のコードのための解決策を見つけることができませんでした。
{u'KBFI ':{date_obs':datetime.datetimeの私は(より多くの辞書のエントリではあるが)このような何かを得るでしょう
row=curs.fetchone d={} D={} while row is not None: station=row[u'STATION'] date_obs=row[u'DATE_OBSERVATION'] temperature=row[u'TMPC'] altimeter=row[u'ALTM'] dewpoint=row[u'DWPC'] windspeed=row[u'SPED'] winddirection=row[u'DRCT'] for i in ('date_obs', 'temperature', 'altimeter', 'dewpoint', 'windspeed', 'winddirection'): d[i]=locals()[i] D[station]=d row = curs.fetchone() print D
:
はここに私の関連するコードです '温度':10進('21 .00 ''露点: '10進(' 4.00 ')、 '高度計 ':10進数('30 .10')、 '風速':10進数( '3.00')、 'winddirection':10進数( '310.00')、u'KKLS ':{date_obs': datetime.datetime ('30 .10 ')、 ' windspeed ':10進数('21 .00' 012,003,125,16,13,14,15,16) ( '3.00')、 'winddirection':10進数( '310.00')}}
など何かしたい:
{u'KBFI ':{date_obs':datetime.datetimeの(2017 ('30 .06 ')、' windspeed ':10進数('19 .00' '露点:' 10進数( '5.00')、 、 '7,19,16,53,' 4.00 ')、 ' winddirection ':10進数(' 270.00 ')、u'KKLS':{date_obs ': datetime.datetime(2017,7,19,16,56)、 'temperature':10進数('21 .00 ' '露点: '10進(' 4.00 ')、'高度計 ':10進数('30 .10')、 '風速':10進数(' 3.00 ')、 'winddirection':進:あなたが作成し、各ループで、その後
d = {}
(' 310.00' )}}
私が見る1つの問題は、あなたが持っている入力辞書が有効でないことです。 '' 'date_obs'''は引用符で囲まれておらず、' 'Decimal('21 .00''''は完全なカッコではありません。 – user2233706