2017-03-03 12 views
-4

私は持っている2つのリストをマージしようとしています。結果の辞書に2つの辞書をマージする

gpbdict = dict(zip(namesb, GPB)) 
>>> {'1': True, '3': True, '2': True, '5': True, '4': True, '7': True, '6': True, '8': True} 
gpadict = dict(zip(namesa, GPA)) 
>>> {'11': True, '10': True, '13': True, '12': True, '15': True, '14': True, '16': True, '9': True} 

しかし、それだけのような単純なものとは思われない:

json.loads(gpadict + gpbdict) 

または

gpa_gpb = [gpadict, gpbdict] 
print json.dumps(gpa_gpb, indent=2, sort_keys=True)) 

以降でのみ、2つの別々のリストで結果を生成します:

>>>[ 
>>> { 
>>> "10": true, 
>>> "11": true, 
>>> "12": true, 
>>> "13": true, 
>>> "14": true, 
>>> "15": true, 
>>> "16": true, 
>>> "9": true 
>>> }, 
>>> { 
>>> "1": true, 
>>> "2": true, 
>>> "3": true, 
>>> "4": true, 
>>> "5": true, 
>>> "6": true, 
>>> "7": true, 
>>> "8": true 
>>> } 
>>>] 

ステップがありませんか?

+2

[1つの式で2つのPython辞書をマージするにはどうすればよいですか?](http://stackoverflow.com/questions/38987/how-to-merge-two-python-dictionaries-in-a-single-式) – mkrieger1

+0

あなたは簡単にGoogleを介してこの質問への回答を見つけることができます。簡単にVeeeeery。また、Pythonの用語についても学んでください。 –

+0

@anandtripathi注意!辞書の 'update'メソッドは何も返しません。しかし、あなたのコメントの本質は真実であり、有効です。 – MariusSiuram

答えて

3

あなたはいくつか変なことをしています。

まず、Pythonオブジェクトをマージしたいですか?なぜ、どのように? gpbdictgpbadictは辞書であり(listではありません)、ご質問はあまり具体的ではありません。 json.loadsは、文字列(JSON)ではなく、のPythonオブジェクトを受け取ることが期待されています。だから、多分あなたは単にたい:

gpbadict = dict(zip(namesb + namesa, GPB + GPA)) 

なお、リストでOKではなく、辞書と連携+演算子。

あなたは辞書をマージしたい場合は、他の一方で、あなたはupdateを使用することができます。

gpadict.update(gpbdict) 

そして、それが効果的に辞書をマージします:gpadictは両方gpadict(開始1)の組み合わせとなりますおよびgpbdict。繰り返しキーがある場合は上書きされます。

そして全体的な質問では、JSONの実際の参照を見つけることができませんでした。私は何かを欠いている?

関連する問題