#python #json #python-3.x #python-2.7
#python #json #python-3.x #python-2.7
Вопрос:
У меня есть образец файла JSON:
"client_info": [
{
"Id": "00201",
"Information": {
"Name": "John",
"Age": 12
},
"Address": [
{
"country": USA,
"location": [
{
"ad1": "NY"
},
{
"ad1": "FL"
},
]
}
]
},
{
"Id": "00202",
"Information": {
"Name": "John",
"Age": 13
},
"Address": [
{
"country": CA,
"location": [
{
"ad1": "NY"
},
{
"ad1": "FL"
},
]
}
]
},
{
"Id": "00203",
"Information": {
"Name": "John",
"Age": 13
},
"Address": [
{
"country": CA,
"location": [
{
"ad1": "NY"
}
]
}
]
}
]
Здесь мне нужно сравнить информацию.Имя, местоположение.ad1 вместе для каждой записи. Например: идентификатор 00201 — John, NY, FL равен идентификатору 00202, но идентификатор 00203 отличается, поскольку имеет только «ad1»: «NY» . В основном нужно сравнивать как набор.
Я могу создать файл CSV, но моя проблема заключается в том, чтобы создать соответствующий результирующий набор. Я попробовал приведенный ниже код для создания соответствующего результирующего набора, но не смог правильно заполнить набор:
uniqueNameSet = set()
uniquelocationSet = set()
for i,client in enumerate(json_data["client_info"]):
if client["Information"]['Name'] not in uniqueNameSet :
uniqueNameSet.add(client["Information"]['Name'])
else:
for j in range(len(client["Address"][0]['location'])):
if client["Address"][0]['location'][j]['ad1'] not in uniquelocationSet :
uniquelocationSet.add(client["Address"][0]['location'][j]['ad1'])
else:
duplictae =1
Я хочу сгенерировать CSV для сопоставленных данных и удалить их из файла JSON.
matched.csv
id Name ad1
00201 John NY,FL
00202 John NY,FL
обновленный файл Json:
"client_info": [
{
"Id": "00203",
"Information": {
"Name": "John",
"Age": 13
},
"Address": [
{
"country": CA,
"location": [
{
"ad1": "NY"
}
]
}
]
}
]
Комментарии:
1. Каков ваш желаемый результат?
2. Привет, я обновил свой вопрос.
3. Я полагаю
uniqueTitleSet
, должно бытьuniqueNameSet
?4. да, извините, мой плохой
5. предоставленный вами код не пытается сгенерировать что-либо подобное тому, что вы хотите, как это не дает вам то, что вы хотите? если ответ — это что-то иное, чем «это не создание CSV», тогда вам нужно немного больше деталей, и если речь идет только о создании CSV, то вы недостаточно изучили,