Hooman Bahreini
Hooman Bahreini

Reputation: 15559

How to get an array of first elements from a json array

I have a config.json file, which contains an array of organisations:

config.json

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

How can I get an array of all organisation names?

This is what I have tried:

from python_json_config import ConfigBuilder

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

    # return all firstNames in org_array

Upvotes: 0

Views: 490

Answers (3)

bigbounty
bigbounty

Reputation: 17368

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']

Use list comprehension, it's very easy. In order to read a json file.

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

Upvotes: 1

CHINTAN VADGAMA
CHINTAN VADGAMA

Reputation: 714

Use lambda with map to get array of only organizations names

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

If you want to read json data from file into dictionary you can achieve this as following.

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

Upvotes: 0

Gwenn
Gwenn

Reputation: 534

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

Also, we don't have any way to know what happens with ConfigBuilder or builder.parse_config since we don't have access to that code, so sorry to not take into account your example

Upvotes: 1

Related Questions