Как преобразовать JSON строк в столбцы - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть JSON структура данных, основанная на строках:

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

, которую я хотел бы преобразовать в данные на основе столбцов:

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

Что такое самый читаемый способ сделать это, если есть много строк и столбцов?

Ответы [ 3 ]

1 голос
/ 15 апреля 2020

Вы можете попробовать:

from collections import defaultdict
x = defaultdict(list)
for item in rows:
    for key, value in item.items():
        x[key].append(value)
1 голос
/ 15 апреля 2020
new_rows={'name':[],'age':[]}
for row in rows:
    new_rows['name'].append(row['name'])
    new_rows['age'].append(row['age'])

Здесь я создаю новый dict, то есть 'new_rows'. Теперь перебираем элементы 'rows', добавляя значения каждого элемента dict к ключам 'new_rows'

1 голос
/ 15 апреля 2020

Использование 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]})
...