extract from json

Kev Dwyer kevin.p.dwyer at gmail.com
Fri Mar 7 22:05:15 CET 2014

teddybubu at gmail.com wrote:

> I can't find any example on how to do this.
> I have a json file like so:
> {"bostock":
> this goes on for more than 700 entries. only thing unique is the number at
> the end of the url. I am going to load the url in python, get the date and
> title and write it in the json itself. Right now I am stuck on just
> reading the url in the json. Here is my code:
> import json
> with open("bostock.json") as json_file:
>     json_data = json.load(json_file)
>     print(json_data)
> I have tried json_data[0], json_data.url and a few others I forget right
> now and it does not seem to work.
> I have already figured out how to get the title and date.
> First things first: How can i just get the url for each line of the above
> json file?



Python 2.7.2 (default, Aug 19 2011, 20:41:43) [GCC] on linux2                                                           
Type "help", "copyright", "credits" or "license" for more information.                                                  

>>> import  json
>>> with open('/tmp/bostock.json') as f:
...     json_data = json.load(f)
>>> json_data
{u'bostock': [{u'url': u'http://bl.ocks.org/mbostock/9360565', u'date': 
u'dateplaceholder', u'title': u'titleplaceholder'}, {u'url': 
u'http://bl.ocks.org/mbostock/9265674', u'date': u'dateplaceholder', 
u'title': u'titleplaceholder'}, {u'url': 
u'http://bl.ocks.org/mbostock/9265467', u'date': u'dateplaceholder', 
u'title': u'titleplaceholder'}, {u'url': 
u'http://bl.ocks.org/mbostock/9234731', u'date': u'dateplaceholder', 
u'title': u'titleplaceholder'}, {u'url': 
u'http://bl.ocks.org/mbostock/9232962', u'date': u'dateplaceholder', 
u'title': u'titleplaceholder'}]}

>>> urls = [x['url'] for x in json_data['bostock']]
>>> urls

Python loads the json in the file into a dictionary.  In this case, the 
dictionary has a single key, 'bostock', and the value in the dictionary for 
that key is a list (of dictionaries).  

To get the urls, you need to get the list 


 and then iterate over it's elements, getting the value for the key url for 
each one.  
This is what the list comprehension 

[x['url'] for x in json_data['bostock']]


I hope that helps,


More information about the Python-list mailing list