如何将 JSON 行转换为列
How to convert JSON rows to columns
我有一个基于行的 JSON 数据结构:
rows = [
{'name': 'tim', 'age': 113},
{'name': 'tess', 'age': 111},
]
我想转换为基于列的数据:
columns = {
'name': ['tim', 'tess'],
'age': [113, 111],
}
如果有很多行和列,最易读的方法是什么?
使用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]})
你可以试试:
from collections import defaultdict
x = defaultdict(list)
for item in rows:
for key, value in item.items():
x[key].append(value)
new_rows={'name':[],'age':[]}
for row in rows:
new_rows['name'].append(row['name'])
new_rows['age'].append(row['age'])
在这里,我正在创建一个新的字典,即 'new_rows'。现在遍历 'rows' 的元素,将每个字典元素的值附加到 'new_rows' keys
我有一个基于行的 JSON 数据结构:
rows = [
{'name': 'tim', 'age': 113},
{'name': 'tess', 'age': 111},
]
我想转换为基于列的数据:
columns = {
'name': ['tim', 'tess'],
'age': [113, 111],
}
如果有很多行和列,最易读的方法是什么?
使用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]})
你可以试试:
from collections import defaultdict
x = defaultdict(list)
for item in rows:
for key, value in item.items():
x[key].append(value)
new_rows={'name':[],'age':[]}
for row in rows:
new_rows['name'].append(row['name'])
new_rows['age'].append(row['age'])
在这里,我正在创建一个新的字典,即 'new_rows'。现在遍历 'rows' 的元素,将每个字典元素的值附加到 'new_rows' keys