![](/img/trans.png)
[英]How to check if dictionary is within a list of dictionaries on both key and value of dict, where dicts can be nested?
[英]How can I print only the keys of inner dictionaries that are nested within a list, within a dict, in alphabetical order?
理想情況下,打印結果將是:
- ainner
- binner1
- cinner2
- dinner3
但是我只設法使用.keys()
打印出鍵。
json_dict = {"key": "value", "key1": [{"binner": "inner_value"}, {"ainner1": "inner_value1"}, {"cinner": "inner_value"}, {"dinner1": "inner_value1"}]}
def pprint(a_dict):
for k in a_dict["key1"]:
print("-", k.keys())
pprint(json_dict)
結果是:
- dict_keys(['binner'])
- dict_keys(['ainner1'])
- dict_keys(['dinner1'])
- dict_keys(['cinner'])
我正在尋找類似的功能: {print("- {}".format(k)) for k in sorted(a_dict)}
適用於非嵌套詞典
您要返回的是密鑰的名稱。
json_dict = {"key": "value", "key1": [{"binner": "inner_value"},{"ainner1": "inner_value1"}]}
for i in json_dict['key1']:
for x in i.keys():
print (x)
結果是這樣
binner
ainner1
您將需要遍歷.keys()來訪問密鑰名稱。
您可以嘗試以下方法:
json_dict = {"key": "value", "key1": [{"binner": "inner_value"}, {"ainner1": "inner_value1"}, {"cinner": "inner_value"}, {"dinner1": "inner_value1"}]}
new_data = sorted([list(i.keys())[0] for i in json_dict["key1"]])
輸出:
['ainner1', 'binner', 'cinner', 'dinner1']
一旦有了所需的對象( key1
的值)
a = [{"binner": "inner_value"}, {"ainner1": "inner_value1"},
{"cinner": "inner_value"}, {"dinner1": "inner_value1"}]
import itertools
從每個字典中獲取鍵
b = map(dict.keys, a)
展平關鍵視圖對象列表
c = itertools.chain.from_iterable(b)
分類
d = sorted(c)
打印
fmt_s = '- {}'
for thing in d:
print(fmt_s.format(thing))
您發布的代碼完成了大部分工作,更改了以下的pprint
:
def pprint(a_dict):
for k in a_dict["key1"]:
print("-", k.keys())
至
def pprint(a_dict):
for k in a_dict["key1"]:
print("-", list(k.keys())[0])
收益率:
- binner
- ainner1
- cinner
- dinner1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.