20

How do I turn this:

data = ((1, '2011-01-01'), (2, '2011-01-02'), (1, '2011-01-15'), (3, '2011-02-01'))

into this:

{
    "item": [
     "1",
     "2",
     "1",
     "3",
    ],
    "settings": {
     "axisx": [
      "2011-01-01",
      "2011-01-02",
      "2011-01-15",
      "2011-02-01"
     ],
     "axisy": [
      "0",
      "100"
     ],
     "colour": "ff9900"
     }
}

Or rather, are there any helpful resources that I can read so that I would be able to produce that JSON output? So I know I need to 'transform' my data into the right data structure. After that is it as easy as json.dumps(data)

Thanks

super9
  • 29,181
  • 39
  • 119
  • 172

2 Answers2

37

Use the json library.

Then convert your data using something like this:

somedict = { "item"     : [ x[0] for x in data ],
             "settings" : { "axisx" : [ x[1] for x in data ],
                            "axisy" : [ 0, 100],
                            "colour" : "ff9900" }
           }

and call:

print json.dumps(somedict)
phooji
  • 10,086
  • 2
  • 38
  • 45
  • 1
    Thanks, this was exactly what I needed. I'm still a beginner in Python as you can see! – super9 Feb 23 '11 at 07:22
  • am new to python...can we use these libraries (`json` or `simplejson`) to serialize/deserialize objects which are extensively used by python developers say pandas dataframe, series etc. – Mahesha999 Sep 20 '16 at 07:26
14

There is a json library.

import json

jsonObj = json.dumps(data)

Thats for json serializing. If you want output be formatted in some other way than you initial data variable, you should create another object, initialize it with values from data in the way you need and than use json library for serialization.