У меня возникли проблемы с получением следующего фрейма данных в структуру JSON. Я попробовал несколько вещей, но не могу добраться до последнего. Итак, у меня есть фрейм данных со следующим
serialNumber | date | part | value | name
--------------|------------|-------|-------|----------------
ABC0001 | 01/10/2019 | Part1 | ABC1 | ABC
ABC0001 | 01/10/2019 | Part1 | ABC2 | XYZ
ABC0001 | 02/10/2019 | Part2 | ABC3 | ASF
ABC0001 | 02/10/2019 | Part2 | ABC4 | TSR
И он мне нужен в формате
{ "SerialNumber": "ABC001",
"detail": [ { "part": "Part1",
"date":"01/10/2019",
"extras": [ { "value": "ABC1",
"name": "ABC"
},
{ "value": "ABC2",
"name": "XYZ"
}]
},
{ "part": "Part2",
"date":"02/10/2019",
"extras": [ { "value": "ABC3",
"name": "ASF"
},
{ "value": "ABC4",
"name": "TSR"
}]
]
}
Итак, группирую серийный номер, затем данные и часть, затем значение и имя. Я посмотрел на некоторые ответы здесь и здесь , последний очень помог
df.groupby(['serialNumber', 'Part']).apply(
lambda r: r[['Value', 'identifierName']].to_dict(orient='records')
).unstack('serialNumber').apply(lambda s: [
{s.index.name: idx, 'detail=': value}
for idx, value in s.items()]
).to_json(orient='records')
, что дает мне
[
{
"ABC0001":{
"Part":"Part1",
"detail=":[
{
"Value":"ABC1",
"identifierName":"ABC"
},
{
"Value":"ABC2",
"identifierName":"XYZ"
}
]
}
},
{
"ABC0001":{
"Part":"Part2",
"detail=":[
{
"Value":"ABC3",
"identifierName":"ASF"
},
{
"Value":"ABC4",
"identifierName":"TSR"
}
]
}
}
]
но ломается, когда я добавляю дату, и не показывает ярлык с серийным номером. Предложения ?? советы?