rgamber rgamber - 1 year ago 62
JSON Question

Forming a JSON Arrays with Objects using a Python object

I have a some variables that I need to dump as a json of the format:


I am trying to figure out the right object which would give the above structure upon usin
. I see that in python, lists give a json array where as dictionaries give a json object while using json dumps.

I am trying something like:


But this still gives me:

{"elements": {"key": "bar", "value": "3423"}}

which is obviously incorrect.

How to I incorporate the correct dictionary and list structure to get to the above json?

Answer Source

Why don't you just use literal?

x = {
    "elements": [
        {"key":"foo", "value":"7837"},
        {"key":"bar", "value":"3423"}

To fix your code, you need to use a list literal ([]) when assigning to elements dictionary entry:

>>> x = {}
>>> x["elements"] = []  # <--- 
>>> x["elements"].append({})
>>> x["elements"].append({})
>>> x["elements"][0]["key"]="foo"
>>> x["elements"][0]["value"]="7837"
>>> x["elements"][1]["key"]="bar"
>>> x["elements"][1]["value"]="3423"
>>> json.dumps(x)
'{"elements": [{"value": "7837", "key": "foo"}, {"value": "3423", "key": "bar"}]}'

But, it's hard to read, maintain.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download