AccessLevels
json:
Accesso = df['AccessLevels']
print(Accesso)
打印访问级别的结果是:
"AccessLevels": {
"Home.btnBuzzer": 0,
"Home.btnLogin": 0,
"Home.btnLogout": 0,
"Home.btnMenu": 0,
"L2A_ConfEdit.btnRecSave": 2,
"L2A_ConfEdit.cbNameConf": 4,
"L2A_ConfEdit.editParameters": 4,
"L2B_ProgEdit.btnRecActivate": 1,
"L2B_ProgEdit.btnRecSave": 2,
"L2B_ProgEdit.btnRecSaveAs": 2,
"L2B_ProgEdit.cbNameProg": 1,
"L2B_ProgEdit.editParameters": 2,
"L2E_Stats.btnRstPar": 1,
"L2E_Stats.btnRstTot": 2,
"L2_Menu.btnConfEdit": 0,
"L2_Menu.btnMaint": 4,
"L2_Menu.btnProgEdit": 0,
"L2_Menu.btnRtCmds": 0,
"L2_Menu.btnStats": 0,
"L2_Menu.btnTestControl": 2
},
注意JSON文件包含约12K行
Home.btnBuzzer 0.0
Home.btnLogin 0.0
Home.btnLogout 0.0
Home.btnMenu 0.0
L2A_ConfEdit.btnRecSave 2.0
...
5 NaN
6 NaN
7 NaN
8 NaN
9 NaN
Name: AccessLevels, Length: 74, dtype: float64
import json
import pandas as pd
# Replace 'your_file.json' with the path to your JSON file
with open('00_000000065.json', 'r') as file:
data = json.load(file)
#print whole json file
#print(data)
df = pd.DataFrame(data)
#Info = df['Info']['CPU12 prog code']
#print(Info)
#print("\nPrint the whole json file as a db to see how it works")
#print(df)
print("\nPrinting the recipes\n")
#Ricetta = df['Recipes']
#Step = df['Recipes']['Programs']['13']['Step']['007']
#print(f"Print me step {Step}")
Info = df['Info']['CPU12 prog code']
print(Info)
Image = df['zImages']['0']
print(Image)
Step1 = df['Recipes']['Configs']['00']['Step']
print(Step1)
print("\nTest of the various levels\n")
Accesso = df['AccessLevels']
print(Accesso)
print("\nPrint of the counter\n")
Contatore = df['CounterEnabled']
print(Contatore)
问题在JSON中,也就是说,导入AccessLevel时,它包含一个字典(嵌套结构),而PANDAS并不能正确地将JSON弄平,从而导致对值的非直接访问。
要解决它,创建将其转换为两列表的数据框架,将密钥列设置为索引,以便您可以通过键访问该值。