JSON Module

JSON = JavaScript Object Notation. It's a series of key-value pairs. The key-value pairs may be nested.

  • A data encoding commonly used on the web when interacting with Javascript
  • Sometime preferred over XML because it's less verbose and faster to parse
  • Syntax is almost identical to a Python dict
{
"recipe" : 
    {

    "title" : "Famous Guacomole",

    "description" : "A southwest favorite!",

    "ingredients" : \[

        {"num": "2", "item":"Large avocados, chopped"},

        {"num": "1/2", "units":"C", "item":"White onion, chopped"},

        {"num": "1", "units":"tbl", "item":"Fresh squeezed lemon juice"},

        {"num": "1", "item":"Jalapeno pepper, diced"},

        {"num": "1", "units":"tbl", "item":"Fresh cilantro, minced"}, 

        {"num": "3", "units":"tsp", "item":"Sea Salt"}, 

        {"num": "6", "units":"bottles","item":"Ice-cold beer"} 

    \],      

    "directions" : "Combine all ingredients and hand whisk to desired consistency. Serve and enjoy with ice-cold beers."  

    } 
}
  • Parsing a JSON document:

import json

doc = json.load(open("recipe.json"))

  • Result is a collection of nested dict/lists:

ingredients = doc['recipe']['ingredients']

for item in ingredients:

# Process item

...

  • Dumping a dictionary as JSON:

f = open("file.json","w")

json.dump(doc,f)

json.dumps() creates a JSON string from the data passed in. It looks like a Python dictionary with quotes around it.

>>> import json

>>> data = {'foo':1, 'bar':'qwerty'}

>>>json.dumps(data)

'{"foo": 1, "bar": "qwerty"}'

>>> data

{'foo': 1, 'bar': 'qwerty'}

>>>

json.loads() takes a JSON String and makes it onto a dictionary.

>>>jsonstr = json.dumps(data)

>>> type(json.loads(jsonstr))

<type 'dict'>

results matching ""

    No results matching ""