glom icon indicating copy to clipboard operation
glom copied to clipboard

how to deal this data

Open wangjingyu001 opened this issue 1 year ago • 2 comments

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 } ]

wangjingyu001 avatar Nov 08 '24 11:11 wangjingyu001

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
   )
 ]
)

kurtbrose avatar Nov 26 '24 18:11 kurtbrose

[{"part_str": k} | v for k, v in datax.items() if k.startswith("part")]

ben05allen avatar Sep 02 '25 23:09 ben05allen