how to deal this data
please help me
datax = {
"cid": "6.10", # 外层字段
"part1": {
"name": "Alice",
"age": 30
},
"part2": {
"name": "Alice2",
"age": 302
},
"part3": {
"name": "Alice3",
"age": 303
}
} ,
and i want the data to be like this ->
[{ "part_str":"part1", "name":"Alice", "Age":30 } , { "part_str":"part2", "name":"Alice2", "Age":302 }, { "part_str":"part3", "name":"Alice3", "Age":303 } ]
https://yak.party/glompad/#spec=%28T.items%28%29%2C+%0A+%5B%0A+++And%28%0A+++++%28T%5B1%5D%2C+Match%28dict%29%29%2C%0A+++++%7B%0A+++++++%22part_str%22%3A+T%5B0%5D%2C+%0A+++++++%22name%22%3A+T%5B1%5D%5B%22name%22%5D%2C+%0A+++++++%22age%22%3A+T%5B1%5D%5B%22age%22%5D%2C%0A+++++%7D%2C%0A+++++default%3DSKIP%0A+++%29%0A+%5D%0A%29&target=%7B%0A%22cid%22%3A+%226.10%22%2C+%23+%E5%A4%96%E5%B1%82%E5%AD%97%E6%AE%B5%0A%22part1%22%3A+%7B%0A%22name%22%3A+%22Alice%22%2C%0A%22age%22%3A+30%0A%7D%2C%0A%22part2%22%3A+%7B%0A%22name%22%3A+%22Alice2%22%2C%0A%22age%22%3A+302%0A%7D%2C%0A%22part3%22%3A+%7B%0A%22name%22%3A+%22Alice3%22%2C%0A%22age%22%3A+303%0A%7D%0A%7D+&v=1
not sure if this is clearer than python code but here you go
(T.items(),
[
And(
(T[1], Match(dict)),
{
"part_str": T[0],
"name": T[1]["name"],
"age": T[1]["age"],
},
default=SKIP
)
]
)
[{"part_str": k} | v for k, v in datax.items() if k.startswith("part")]