要遍历包含嵌套的JSON字典和数组的Pandas数据帧,可以使用Pandas的apply函数结合递归函数来实现。下面是一个示例代码:
import pandas as pd
# 递归函数,用于遍历JSON对象
def traverse_json(obj, path=''):
if isinstance(obj, dict):
for key, value in obj.items():
new_path = path + '.' + key if path else key
traverse_json(value, new_path)
elif isinstance(obj, list):
for i, item in enumerate(obj):
new_path = path + '.' + str(i) if path else str(i)
traverse_json(item, new_path)
else:
print(f'{path}: {obj}')
# 示例JSON数据
data = {
'name': 'John',
'age': 30,
'address': {
'street': '123 Main St',
'city': 'New York',
'zipcode': '10001'
},
'hobbies': ['reading', 'cooking', 'traveling'],
'friends': [
{
'name': 'Tom',
'age': 28
},
{
'name': 'Jane',
'age': 32
}
]
}
# 创建Pandas数据帧
df = pd.DataFrame({'json_data': [data]})
# 对数据帧中的每个JSON对象应用递归函数
df['json_data'].apply(traverse_json)
输出结果如下:
name: John
age: 30
address.street: 123 Main St
address.city: New York
address.zipcode: 10001
hobbies.0: reading
hobbies.1: cooking
hobbies.2: traveling
friends.0.name: Tom
friends.0.age: 28
friends.1.name: Jane
friends.1.age: 32
这样就可以遍历包含嵌套的JSON字典和数组的Pandas数据帧了。
上一篇:遍历包含列表和每个Map的Map
下一篇:遍历包含嵌套对象的数组