繁体   English   中英

如何从 json 数组中获取第一个元素的数组

[英]How to get an array of first elements from a json array

我有一个 config.json 文件,其中包含一组组织:

config.json

{
    "organisations": [
        { "displayName" : "org1", "bucketName" : "org1_bucket" },
        { "displayName" : "org2", "bucketName" : "org2_bucket" },
        { "displayName" : "org3", "bucketName" : "org3_bucket" }
    ]
}

如何获取所有组织名称的数组?

这是我尝试过的:

from python_json_config import ConfigBuilder

def read_config():
    builder = ConfigBuilder()
    org_array = builder.parse_config('config.json')

    # return all firstNames in org_array
import json

def read_config():
    display_names = []
    with open('yourfilename.json', 'r', encoding="utf-8") as file:
        orgs = json.load(file)
        display_names = [ o["displayName"] for o in orgs["organizations"] ]
    return display_names

此外,我们无法知道ConfigBuilderbuilder.parse_config会发生什么,因为我们无权访问该代码,因此很抱歉没有考虑您的示例

a = {
    "organisations": [
        { "displayName" : "org1", "bucketName" : "org1_bucket" },
        { "displayName" : "org2", "bucketName" : "org2_bucket" },
        { "displayName" : "org3", "bucketName" : "org3_bucket" }
    ]
}

print([i["displayName"] for i in a["organisations"]])

Output:

['org1', 'org2', 'org3']

使用列表推导,这很容易。 为了读取 json 文件。

import json
data = json.load(open("config.json"))

使用lambdamap获取仅组织名称的数组

>>> list(map(lambda i:i['displayName'],x['organisations']))
>>> ['org1', 'org2', 'org3']

如果您想将json数据从文件读取到dictionary中,您可以按以下方式实现。

import json
with open('config.json') as json_file:
    data = json.load(json_file)
    org_array = list(map(lambda i:i['displayName'],data['organisations']))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM