Simon Kiely
Simon Kiely

Reputation: 6040

Printing from a dictionary in Python

I am running a method which returns a dictionary which is formed like the following :

   {
  "intents": [
    {
      "name": "goodbye",
      "created": "2017-08-18T18:09:36.155Z",
      "updated": "2017-08-18T18:09:41.755Z",
      "description": null
    },
    {
      "name": "hello",
      "created": "2017-08-18T18:05:48.153Z",
      "updated": "2017-08-18T18:06:06.004Z",
      "description": null
    }
  ],
  "pagination": {
    "refresh_url": "/v1/workspaces/9978a49e-ea89-4493-b33d-82298d3db20d/intents?version=2017-08-21"
  }
}

This is all saved in a variable called response, which contains the dictionary for over 200 values.

If I print just "response", it prints all of the above, including "created/updated/description". I just want to print out the name value...and I cannot figure out how to do it.

I have read some posts here and tried the following -

for value in response:
  print(value['intent'])

but similarly, this prints out everything (including description/update date etc).

How can I make it only print out the name?

And for a bonus, how can I add the list of names into an array which I can then iterate over?

Upvotes: 0

Views: 378

Answers (3)

Sunil Lulla
Sunil Lulla

Reputation: 813

Have a look at my solution

names_list = []
for x in response["intents"]:
  print x["name"] # it will print all of your names
  names_list.append(x["name"]) # it will add the names into the names_list

print names_list

Hope it will help you :)

Upvotes: 0

suit
suit

Reputation: 581

Adding names into list and print it:

names = [intent["name"] for intent in response["intents"]]
print(*names, sep='\n')

Upvotes: 0

cs95
cs95

Reputation: 402283

It appears you want to access the name attribute of each sub-dict in intents. This should work -

for d in response['intents']: 
    print(d['name'])

If you want this stored in a list, use a list comprehension:

names = [d['name'] for d in response['intents']]

Upvotes: 1

Related Questions