我有一個這樣的嵌套字典:
nest_dict = {
"1": {
"Name": X,
"Class": "10",
"Roll_no": 19289,
"Marks": 126
},
"2": {
"Name": Y,
"Class": "12",
"Roll_no": 19290,
"Marks": 124
}
}.
請注意,每個子條目具有相同的一組鍵,即 Name、Class、Roll_no、Marks。如何獲得 , , 的串列,all_Names = [X, Y]而不必遍歷上一級(即 1,2)中的條目。應該有一些簡單的方法來實作這一點,對吧?(我正在嘗試使用 python3 從 json 檔案中決議。)all_Class = [10, 12]all_Roll_no = [19289, 19290]all_Marks = [126, 124]
uj5u.com熱心網友回復:
你應該迭代。代碼足夠簡單,快速且高效。我沒有看到很多其他的方法。
例子:
nest_dict = {
"1": {
"Name": "X",
"Class": "10",
"Roll_no": 19289,
"Marks": 126
},
"2": {
"Name": "Y",
"Class": "12",
"Roll_no": 19290,
"Marks": 124
}
}
all_roll_numbers = set()
all_names = set()
all_classes = set()
all_marks = set()
for data in nest_dict.values():
all_names.add(data["Name"])
all_classes.add(data["Class"])
all_roll_numbers.add(data["Roll_no"])
all_marks.add(data["Marks"])
不一樣的看法:
data = {
"Name": set(),
"Class": set(),
"Roll_no": set(),
"Marks": set()
}
for item in nest_dict.values():
for key, value in item.items():
data[key].add(value)
uj5u.com熱心網友回復:
應該有一些簡單的方法來實作這一點,對吧?
這足夠簡單嗎?:
import pandas as pd
nest_dict = {
"1": {
"Name": 'X',
"Class": "10",
"Roll_no": 19289,
"Marks": 126
},
"2": {
"Name": 'Y',
"Class": "12",
"Roll_no": 19290,
"Marks": 124
}}
res = pd.DataFrame(nest_dict.values()).T.apply(list,1).to_dict()
>>> res
'''
{'Name': ['X', 'Y'],
'Class': ['10', '12'],
'Roll_no': [19289, 19290],
'Marks': [126, 124]}
uj5u.com熱心網友回復:
all_Names = [y['Name'] for x,y in nest_dict.items()]
等等其他人的'Class','Roll_no',......應該足夠簡單。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/465801.html
標籤:Python json python-3.x 字典
