gpt4 book ai didi

python - 如何接受 python json 字典中的任何键?

转载 作者:行者123 更新时间:2023-11-28 22:12:57 25 4
gpt4 key购买 nike

这是我正在使用的 JSON 的简化版本:

{
"libraries": [
{
"library-1": {
"file": {
"url": "foobar.com/.../library-1.bin"
}
}
},
{
"library-2": {
"application": {
"url": "barfoo.com/.../library-2.exe"
}
}
}
]
}

使用 json,我可以 json.loads() 这个文件。我需要能够找到“url”,下载它,并将其保存到名为 library 的本地文件夹中。在本例中,我将在 libraries/ 中创建两个文件夹,一个名为 library-1,另一个名为 library-2。在这些文件夹中的是从 url 下载的任何内容。

但是,问题是能够访问 url:

my_json = json.loads(...) # get the json

for library in my_json['libraries']:
file.download(library['file']['url']) # doesn't access ['application']['url']

由于我使用的 JSON 使用多种访问器,有时是"file",有时是“dll”等,所以我不能使用一个特定的字典键。我怎样才能使用多个。是否有模块化的方法来做到这一点?

编辑:访问器有很多,"file"、“应用程序”和“dll”只是一些例子。

最佳答案

您可以遍历字典的每个级别并在找到 url 时下载文件。

urls = []
for library in my_json['libraries']:
for lib_name, lib_data in library.items():
for module_name, module_data in lib_data.items():
url = module_data.get('url')
if url is not None:
# create local directory with lib_name
# download files from url to local directory
urls.append(url)

# urls = ['foobar.com/.../library-1.bin', 'barfoo.com/.../library-2.exe']

关于python - 如何接受 python json 字典中的任何键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54382206/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com