扁平化JSON数据是指将嵌套的JSON对象转换为一维的键值对形式,下面是一个示例代码,演示了如何扁平化JSON数据:
import json
def flatten_json(data, prefix=''):
flattened_data = {}
if isinstance(data, dict):
for key, value in data.items():
new_key = f'{prefix}.{key}' if prefix else key
flattened_data.update(flatten_json(value, new_key))
elif isinstance(data, list):
for i, item in enumerate(data):
new_key = f'{prefix}.{i}' if prefix else str(i)
flattened_data.update(flatten_json(item, new_key))
else:
flattened_data[prefix] = data
return flattened_data
# 示例输入的嵌套JSON数据
nested_json = {
'name': 'John',
'age': 30,
'address': {
'street': '123 Street',
'city': 'City',
'state': 'State'
},
'hobbies': ['reading', 'traveling']
}
# 扁平化JSON数据
flattened_json = flatten_json(nested_json)
# 打印扁平化后的键值对
for key, value in flattened_json.items():
print(f'{key}: {value}')
运行上述代码,将会输出以下结果:
name: John
age: 30
address.street: 123 Street
address.city: City
address.state: State
hobbies.0: reading
hobbies.1: traveling
这样,嵌套的JSON数据被转换为了一维的键值对形式。其中,每个键表示原始JSON数据中的路径,每个值表示对应路径的值。
下一篇:扁平化具有负值的网格数组的公式