super9
super9

Reputation: 30111

Python Tuple to JSON output

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

Upvotes: 21

Views: 60766

Answers (2)

phooji
phooji

Reputation: 10395

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)

Upvotes: 39

Alexander Sobolev
Alexander Sobolev

Reputation: 789

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.

Upvotes: 15

Related Questions