Sam
Sam

Reputation: 3

How to parse specific data from JSON request

I'm getting into coding, and I'm wondering how I'd go about retrieving the data for "tag_id": 4 specifically.

I know that to get the data for status, but how would I go about getting specific data if there are multiple entries?

r = requests.get('url.com', headers = user_agent).json()
event = (r['status'])

print(event)

//////////////////

{
  "status": "SUCCESS",
  "status_message": "blah blah blah",
  "pri_tag": [
      {
          "tag_id": 1,
          "name": "Tag1"
      },
      {
          "tag_id": 2,
          "name": "Tag2"
      },
      {
          "tag_id": 3,
          "name": "Tag3"
      },
      {
          "tag_id": 4,
          "name": "Tag4"
      }
  ]
}

Upvotes: 0

Views: 57

Answers (2)

John S
John S

Reputation: 71

The for loop answer is sufficient, but this is a good chance to learn how to use list comprehensions, which are ubiquitous and "pythonic":

desired_tag_name = [tag["name"] for tag in event["pri_tag"] if tag["tag_id"] == 4]

List comprehensions are advantageous for readability (I know it may not seem so the first time you look at one) and because they tend to be much faster.

There is a bounty of documentation and blog posts out there to understand the syntax better, and I don't prefer any particular one over another.

Upvotes: 1

Jack Fleeting
Jack Fleeting

Reputation: 24940

I think you're looking for something like:

tags = event["pri_tag"]
for tag in tags:
    if tag['tag_id']==4:
        print(tag['name'])

Output:

Tag4

Upvotes: 0

Related Questions