Home > Enterprise >  Printing pair of a dict
Printing pair of a dict

Time:01-05

Im new in python but always trying to learn.

Today I got this error while trying select a key from dictionary:

print(data['town']) KeyError: 'town'

My code:

import requests


defworld = "Pacera"
defcity = 'Svargrond'

requisicao = requests.get(f"https://api.tibiadata.com/v2/houses/{defworld}/{defcity}.json")
data = requisicao.json()

print(data['town'])

The json/dict looks this:

{
  "houses": {
    "town": "Venore",
    "world": "Antica",
    "type": "houses",
    "houses": [
      {
        "houseid": 35006,
        "name": "Dagger Alley 1",
        "size": 57,
        "rent": 2665,
        "status": "rented"
      }, {
        "houseid": 35009,
        "name": "Dream Street 1 (Shop)",
        "size": 94,
        "rent": 4330,
        "status": "rented"
      },
      ...
    ]
  },
  "information": {
    "api_version": 2,
    "execution_time": 0.0011,
    "last_updated": "2017-12-15 08:00:00",
    "timestamp": "2017-12-15 08:00:02"
  }
}

The question is, how to print the pairs?

Thanks

CodePudding user response:

You have to access the town object by accessing the houses field first, since there is nesting.

You want print(data['houses']['town']).

CodePudding user response:

To avoid your first error, do

print(data["houses"]["town"])

(since it's {"houses": {"town": ...}}, not {"town": ...}).

To e.g. print all of the names of the houses, do

for house in data["houses"]["houses"]:
    print(house["name"])
  •  Tags:  
  • Related