Я создал скрипт Python для чтения данных из JSON и сохранения определенных полей в файл Excel.У меня есть другой файл JSON в следующем формате:
{
"001d2bd5": {
"EndpointMap": {
"12167491": {
"Ep_config_url": "",
"Ep_dhcp": null,
"Ep_dhcp_version": 0,
"Ep_gw": "",
"Ep_host": "",
"Ep_host_uuid": "",
"Ep_id": "epNw2.2.2.2/26",
"Ep_ip": "2.2.2.2",
"Ep_mac": "",
"Ep_name": "",
"Ep_nameserver": "",
"Ep_netmask": "255.255.255.192",
"Ep_ops": "",
"Ep_port": "",
"Ep_sg_id": "001d2bd5",
"Ep_status": "active",
"Ep_type": "external",
"Ep_uuid": "12167491"
}
},
"Mutex": {},
"Sg": {
"EnableDHCP": true,
"Encrypt": false,
"External": true,
"Name": "VN2",
"PrefixGroup": false,
"Uuid": "001d2bd5"
},
"SgToSgDstMap": {
"5e881630": true
},
"SgToSgSrcMap": {}
},
"0448d01f": {
"EndpointMap": {
"82e4a911": {
"Ep_config_url": "",
"Ep_dhcp": null,
"Ep_dhcp_version": 0,
"Ep_gw": "",
"Ep_host": "",
"Ep_host_uuid": "",
"Ep_id": "epNw3.3.3.3/23",
"Ep_ip": "3.3.3.3",
"Ep_mac": "",
"Ep_name": "",
"Ep_nameserver": "",
"Ep_netmask": "255.255.254.0",
"Ep_ops": "",
"Ep_port": "",
"Ep_sg_id": "0448d01f",
"Ep_status": "active",
"Ep_type": "external",
"Ep_uuid": "82e4a911"
}
},
"Mutex": {},
"Sg": {
"EnableDHCP": true,
"Encrypt": false,
"External": true,
"Name": "ISG",
"PrefixGroup": false,
"Uuid": "0448d01f"
},
"SgToSgDstMap": {
"23840de2": true,
"8260f374": true,
"c83217fc": true
},
"SgToSgSrcMap": {
"28717b76": true,
"73e864c0": true
}
Вот как начинается JSON, и это его часть.Я хочу взять один столбец из вышеприведенного листа Excel, сохранить его в списке, а затем повторить его через часть Mutex этого JSON, чтобы получить имя и сохранить его как новый столбец в том же Excel.В настоящее время это мой код:
#!/usr/bin/python
import xlwt
import json
from xlutils.copy import copy
import xlrd
import os.path
import openpyxl
import pandas as pd
with open('ep.txt', 'r') as f:
js = json.loads(f.read())
book = xlwt.Workbook(encoding="utf-8")
sheet1 = book.add_sheet("Sheet 1", cell_overwrite_ok=True)
sheet1.write(0, 0, 'Ep_sg_id')
sheet1.write(1, 0, 'Ep_ip')
sheet1.write(2, 0, 'Ep_netmask')
p = 1
for i, j in js.items():
sg_id = js[i]['Ep_sg_id']
ip = js[i]['Ep_ip']
netmask = js[i]['Ep_netmask']
sheet1.write(p, 0, sg_id)
sheet1.write(p, 1, ip)
sheet1.write(p, 2, netmask)
p = p + 1
book.save('js_excel.xls')
df = pd.read_excel('js_excel.xls', sheetname=0)
mylist = df['Ep_sg_id'].tolist()
print mylist
Я не могу перебрать список по JSON.
Список содержит Uuid, и мне нужно получить имя и сохранить его вExcel.
"Mutex": {},
"Sg": {
"EnableDHCP": true,
"Encrypt": false,
"External": true,
"Name": "VN2",
"PrefixGroup": false,
"Uuid": "001d2bd5"
PS: Для сгенерированного листа Excel ("js_excel.xls") я хочу сгруппировать данные по "Ep_sg_id", так как они могут иметь несколько "Ep-ip".