I have written a Python script that outputs a long data structure (dictionary i called "celldict") in Json format. Here's a small part of it :
{
"1224": {
"OUT3FA_5": 12,
"IN1": 37,
"Total_IN1": 37
},
"1225": {
"OUT3FA_5": 24,
"IN1": 59,
"Total_IN1": 22
}
}
But what I would like to do is have something like this :
{
"success": true,
"data": [
{
"Week":"1224",
"OUT3FA_5": 65,
"IN1": 85,
"Total_IN1": 100
},
{
"Week":"1225",
"OUT3FA_5": 30,
"IN1": 40,
"Total_IN1": 120
}
]
}
Is there a way to format the json output with Python to get I what I want? I do:
print json.dumps(celldict)
to get my output. Any help would be much much appreciated.
Just put celldict inside another dict:
json.dumps({'success': True, 'data': celldict.values()})
You'll have to add the Week key to the celldict dictionaries first:
for d in celldict.itervalues():
celldict['Week'] = '1238'
or use create a copy of each dict on-the-fly:
json.dumps({'success': True, 'data': [dict(d, Week='1238') for d in celldict.values()]})
The latter method, with some indentation, produces:
>>> print json.dumps({'success': True, 'data': [dict(d, Week='1238') for d in celldict.values()]}, indent=4)
{
"data": [
{
"OUT3FA_5": 24,
"Week": "1238",
"Total_IN1": 22,
"IN1": 59
},
{
"OUT3FA_5": 12,
"Week": "1238",
"Total_IN1": 37,
"IN1": 37
}
],
"success": true
}
Reading between the lines, it seems as if the 1224 and 1225 keys in your input example are actually the week numbers you are referring to. If so, they are easily incorporated:
json.dumps({'success': True, 'data': [dict(d, Week=k) for k, d in celldict.iteritems()]})
would produce:
{
"data": [
{
"OUT3FA_5": 24,
"Week": "1225",
"Total_IN1": 22,
"IN1": 59
},
{
"OUT3FA_5": 12,
"Week": "1224",
"Total_IN1": 37,
"IN1": 37
}
],
"success": true
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With