Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I have a JSON data structure that is row-based:

rows = [
    {'name': 'tim', 'age': 113}, 
    {'name': 'tess', 'age': 111},
]

that I would like to convert to column-based data:

columns = {
    'name': ['tim', 'tess'],
    'age': [113, 111],
}

What is the most readable way to do this if there are lots of rows and columns?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
176 views
Welcome To Ask or Share your Answers For Others

1 Answer

Use collections.defaultdict:

from collections import defaultdict

rows = [
    {'name': 'tim', 'age': 113}, 
    {'name': 'tess', 'age': 111},
]

d = defaultdict(list)
for r in rows:
    for k, v in r.items():
        d[k].append(v)

print(d)
# defaultdict(<class 'list'>, {'name': ['tim', 'tess'], 'age': [113, 111]})

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...