У меня есть данные в этом формате, присутствующий в JSon файлселективного уплощения в питоне вложенного словаря и поиск ключи
[
{
"FIRST NAME": "Nasim",
"EMAIL": "[email protected]",
"ADDLINE1": "855-8805 Nunc. Avenue",
"CITY": "Masterton",
"LOCATION":{"ADDLINE2":"855-8805",
"ADDLINE3":"Avenue",
"PIN":"100"}
},
{
"FIRST NAME": "Xanthus",
"EMAIL": "[email protected]",
"ADDLINE1": "357-4583 Curae; St.",
"CITY": "Basildon",
"LOCATION":{"ADDLINE2":"357-4583",
"ADDLINE3":"Curae; St.",
"PIN":"101"}
},
{
"FIRST NAME": "Hedley",
"EMAIL": "[email protected]",
"ADDLINE1": "315-623 Nibh. Road",
"CITY": "Abingdon",
"LOCATION":{"ADDLINE2":"315-623",
"ADDLINE3":"Nibh. Road",
"PIN":"102"}
}]
это мой код
data=json.loads(file('grade.json').read())
for row in data:
row['ADDRESS']= row['ADDLINE1']+','+ row['CITY']
del row['CITY'], row['ADDLINE1']
row['LOCATION1']=row['LOCATION']['ADDLINE2']+','+row['LOCATION'] ['ADDLINE3']+','+row['LOCATION']['PIN']
del row['LOCATION']
data =json.loads(file('grade.json').read())
out = {}
for sub in data.values():
for key, value in sub.items():
if key in out:
del out[key]
else:
out[key] = value
print(out)
file('files','w').write(json.dumps(data))
out_path= "outfile9.csv"
fieldnames = list(set(k for d in data for k in d))
with open(out_path, 'wb') as out_file:
writer = csv.DictWriter(out_file, fieldnames=fieldnames, dialect='excel')
writer.writeheader()
writer.writerows(data)
я хочу, чтобы удалить d вложенного словарь (LOCATION1 , здесь после форматирования - ранее было LOCATION), но сохранить ADDLINE2,3, PIN как то же самое. Я хочу сплющенный словарь. что я могу сделать, чтобы импровизировать?
я требую ключей в этой форме [Firstname, адрес электронной почты, адрес {addline2, addline3, контактный}] даже если дополнительные вложенные значения добавляются должен динамически появляться в таком виде
я получил его .. спасибо u :) – Shadow
как получить вложенные словарные только ключи? – Shadow
@Shadow вам предлагается задать еще один конкретный вопрос. –