Вложенный словарь с двойными ключами, но с разными значениями

Мне сложно возвращать значения каждого экземпляра $t во вложенном словаре ниже. Что мне нужно сделать, это потянуть каждую из пар ключ-значение и добавить их отдельно в другой словарь.

Вот JSON:

 "breed": [ { "$t": "Chihuahua" }, { "$t": "Jack Russell Terrier" } ] 

Кстати, я использую Python 2.7

3 Solutions collect form web for “Вложенный словарь с двойными ключами, но с разными значениями”

Что-то вроде этого?

 >>> o = [ { "$t": "Chihuahua" }, { "$t": "Jack Russell Terrier" } ] >>> [ item["$t"] for item in o ] ['Chihuahua', 'Jack Russell Terrier'] >>> 

Это то, что вы ищите? (Это зависит от того, как вы хотите обрабатывать несколько значений, соответствующих одному и тому же $t .)

 nestedDict = { "breed": [ { "$t": "Chihuahua" }, { "$t": "Jack Russell Terrier" } ] } dictEntries = [ (k, v) for dicList in nestedDict.values() for d in dicList for (k, v) in d.items() ] flattenedDict = { } for k, v in dictEntries: flattenedDict.setdefault( k, [] ).append( v ) print ( flattenedDict ) 

Это дает вам:

 {'$t': ['Chihuahua', 'Jack Russell Terrier']} 

Я не понимаю, что вы пытаетесь сделать. Если вы хотите создать Python dict из JSON ans, получите его значения с помощью ключа «$ t», вот он (если нет, комментарий и я удаляю ответ).

 # Many thanks to Dogbert, whose answer I copied the list comprehension from # (changing a few things), and many thanks to slothrop, whose answer gave me # ideas for my variable name. Not for those people, I would have used a silly # name like `thing` and would have used a for loop. import json nested_dict = json.loads('{"breed": [{"$t": "Chihuahua"}, ' '{"$t": "Jack Russell Terrier"}]}') [dic["$t"] for dic in nested_dict["breed"]] 

Если вам нужны пары ключ-значение каждого dict внутри вашего dict:

 key_and_value_pairs = [] for dic in nested_dict["breed"]: key_and_value_pairs.extend(dic.items()) 
Python - лучший язык программирования в мире.