
这是我的 json 对象
[
{
"person": "abc",
"city": "united states",
"facebooklink": "link",
"united states": [
{
"person": "cdf",
"city": "ohio",
"facebooklink": "link",
"ohio": [
{
"person": "efg",
"city": "clevland",
"facebooklink": "link",
"clevland": [
{
"person": "jkl",
"city": "street a",
"facebooklink": "link",
"street a": [
{
"person": "jkl",
"city": "house 1",
"facebooklink": "link"
}
]
}
]
},
{
"person": "ghi",
"city": "columbus",
"facebooklink": "link"
}
]
},
{
"person": "abc",
"city": "washington",
"facebooklink": "link"
}
]
}
]我想创建以下 json,将地址字段动态添加到 json 中。
里面有2个文件夹。其中这个文件名是:finishing,是我项目还没有请求后台的数据的模拟写法。请求后台数据之后,瀑布流的js有一点点变化,放在文件名是:finished。变化在于需要穿参数到后台,和填充的内容都用后台的数据填充。看自己项目需求来。由于chrome模拟器是不允许读取本地文件json的,所以如果你要进行测试,在hbuilder打开项目就可以看到效果啦,或者是火狐浏览器。
92
[
{
"person": "abc",
"city": "united states",
"facebooklink": "link",
"address": "united states",
"united states": [
{
"person": "cdf",
"city": "ohio",
"facebooklink": "link",
"address": "united states/ohio",
"ohio": [
{
"person": "efg",
"city": "clevland",
"facebooklink": "link",
"address": "united states/ohio/clevland",
"clevland": [
{
"person": "jkl",
"city": "Street A",
"facebooklink": "link",
"address": "united states/ohio/clevland/Street A",
"Street A": [
{
"person": "jkl",
"city": "House 1",
"facebooklink": "link",
"address": "united states/ohio/clevland/Street A/House 1"
}
]
}
]
},
{
"person": "ghi",
"city": "columbus",
"facebooklink": "link",
"address": "united states/ohio/columbus"
}
]
},
{
"person": "abc",
"city": "washington",
"facebooklink": "link",
"address": "united states/washington"
}
]
}
]
``
How can I achieve this in Python.我已经尽力解决了。看看这是否有帮助。 用短json编写代码。但您可以使用完整的嵌套 json 作为输入。
# import json
given_data = [
{
"person": "abc",
"city": "united states",
"facebooklink": "link",
"united states": [
{
"person": "cdf",
"city": "ohio",
"facebooklink": "link"
},
{
"person": "abc",
"city": "washington",
"facebooklink": "link"
}
]
}
]
PARENT_TOP = ""
city = "city"
address = 'address'
def update_address(parent_node, my_path=PARENT_TOP):
if isinstance(parent_node, list):
for child_node in parent_node:
if isinstance(child_node, dict):
city = child_node.get("city")
new_path = f"{my_path}/{city}" if my_path else city
child_node[address] = new_path
grand_child = child_node.get(city)
update_address(grand_child, new_path)
elif isinstance(parent_node, dict):
city = parent_node.get("city")
new_path = f"{my_path}/{city}" if my_path else city
parent_node[address] = new_path
child = parent_node.get(city)
update_address(child, new_path)
else:
pass
return parent_node
if __name__ == '__main__':
update_address(given_data)
# output = json.dumps(json.loads(str(given_data)), indent=2)
print(given_data)以上就是如何自动填充json中的地址的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号