Я использую pandas для нормализации некоторых json данных. Я застреваю в этой проблеме, когда более 1 раздела является либо объектом, либо массивом.
Если я использую record_path на Car, он прерывается на втором.
Есть ли какие-нибудь указатели о том, как получить что-то подобное для создания строки в CSV для каждого автомобиля и для каждого местоположения?
[
{
"Name": "John Doe",
"Car": [
"Car1",
"Car2"
],
"Location": "Texas"
},
{
"Name": "Jane Roe",
"Car": "Car1",
"Location": [
"Illinois",
"Kansas"
]
}
]
Вот вывод
Name,Car,Location
John Doe,"['Car1', 'Car2']",Texas
Jane Roe,Car1,"['Illinois', 'Kansas']"
Вот код:
with open('file.json') as data_file:
data = json.load(data_file)
df = pd.io.json.json_normalize(data, errors='ignore')
Хотелось бы, чтобы все закончилось так:
Name,Car,Location
John Doe,Car1,Texas
John Doe,Car2,Texas
Jane Roe,Car1,Illinois
Jane Roe,Car1,Kansas
Ответы работали великолепно, пока я не наткнулся на файл json с дополнительными данными. Вот как выглядит файл с дополнительными значениями.
{
Customers:[
{
"Name": "John Doe",
"Car": [
"Car1",
"Car2"
],
"Location": "Texas",
"Repairs: {
"RepairLocations": {
"RepairsCompleted":[
"Fix1",
"Fix2"
]
}
}
},
{
"Name": "Jane Roe",
"Car": "Car1",
"Location": [
"Illinois",
"Kansas"
]
}
]
}
Вот что я собираюсь сделать. Я думаю, что это наиболее читаемый в этом формате, но что-нибудь по крайней мере, если все ключи
Name,Car,Location,Repairs:RepairLocation
John Doe,Car1,Texas,RepairsCompleted:Fix1
John Doe,Car1,Texas,RepairsCompleted:Fix2
John Doe,Car2,Texas,RepairsCompleted:Fix1
John Doe,Car2,Texas,RepairsCompleted:Fix2
Jane Roe,Car1,Illinois,
Jane Roe,Car1,Kansas,
Есть какие-нибудь предложения по получению этой второй части?