[Tutor] Using json to filter out results from a dictionary

Jasmine Gao jasminegao93 at gmail.com
Thu Dec 13 23:39:01 CET 2012


Hello,

I've just started programming in python and haven't had much experience
with json. I've written this simple script that makes a request to the
Bitly API, specifically the
/v3/realtime/bursting_phrases<http://dev.bitly.com/data_apis.html#v3_realtime_bursting_phrases>endpoint,
and prints the response into terminal. What I want to do is take
the response and filter out a portion of it so I only see the data I find
important. So far I've used json to load the results into a dictionary,
however I'm stuck in terms of how you loop through the dictionary and only
print out certain keys while dumping the rest.

To illustrate, this is the script:

import urllib2


CLIENT_ID = "0367d81a428968a57704a295a4378521af81c91b"

CLIENT_SECRET = "404862446e88f391e8c411ca1ee912506d64fffd"

ACCESS_TOKEN = "53a01f38b09c0463cb9e2b35b151beb127843bf3"

BITLY_ENDPOINT = "
https://api-ssl.bitly.com/v3/realtime/bursting_phrases?access_token=
"+ACCESS_TOKEN


def getServiceResponse():

    url = BITLY_ENDPOINT

    request = urllib2.Request(url)

    response = urllib2.urlopen(request)

    d = json.loads(response.read())



getServiceResponse()


In terminal I run this command: python /file/location/file.py | tr "," "\n"
which returns a long list of results like this:


"data": {"selectivity": 3.0

"phrase": "justin bieber"

  "mean": 0.089999999999999997}

  {"std": 0.046334721206249076

  "ghashes": [

 {"visitors": 440

 "ghash": "QXfZfQ"}

 {"visitors": 215

 "ghash": "W9sHrc"}

 {"visitors": 92

 "ghash": "XY9PPX"}]

  "N": 203183.0

  "rate": 0.53000000000000003

    "urls": [

 {"visitors": 440

 "aggregate_url": "http://bit.ly/QXfZfQ"}

 {"visitors": 215

 "aggregate_url": "http://bit.ly/W9sHrc"}

 {"visitors": 92

 "aggregate_url": "http://bit.ly/XY9PPX"}]


How do I use json to filter out the "ghashes" from what is printed into
terminal so that the results look like this instead?:

"data": {"selectivity": 3.0

"phrase": "justin bieber"

  "mean": 0.089999999999999997}

  {"std": 0.046334721206249076

  "N": 203183.0

  "rate": 0.53000000000000003

     "urls": [

  {"visitors": 440

 "aggregate_url": "http://bit.ly/QXfZfQ"}

  {"visitors": 215

  "aggregate_url": "http://bit.ly/W9sHrc"}

  {"visitors": 92

 "aggregate_url": "http://bit.ly/XY9PPX"}]


Any help would greatly be appreciated, thank you!

- Jasmine
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20121213/2faf02a3/attachment.html>


More information about the Tutor mailing list