Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to convert list of list (of lists) to json array in python?

Tags:

python

json

list

I'm having trouble finding how to convert python list of of elements like this:

[[["thisid", 24024502], ["points", [[["lat", 37.8732041], ["lon", -122.2562601]], [["lat", 37.8729153], ["lon", -122.2561566]]]], ["name", "Latimer Hall"]]

to json array of elements like that:

{"thisid": 24024502, "points": [{"lat": 37.8732041, "lon": -122.2562601}, {"lat": 37.8729153, "lon": -122.2561566}], "name": "Latimer Hall"}

Basically, I'm trying to convert list of lists with inner structure to a corresponding list in json.

Plain json.dumps(mylist) just returns the original list (I guess, it's because it's a valid json object as well...)

Many thanks for any suggestions you may have!

like image 677
Timur B Avatar asked Mar 19 '12 12:03

Timur B


People also ask

How do you parse a JSON list in Python?

Parse JSON - Convert from JSON to Python If you have a JSON string, you can parse it by using the json.loads() method. The result will be a Python dictionary.

How do I add a list to a JSON file?

Steps for Appending to a JSON File In Python, appending JSON to a file consists of the following steps: Read the JSON in Python dict or list object. Append the JSON to dict (or list ) object by modifying it. Write the updated dict (or list ) object into the original file.

Is JSON a list of dictionaries?

JSON, or JavaScript Object Notation, is a broader format used to encompass dictionary and list structures as shown in the image below. JSON: List and Dictionary Structure, Image by Author. The technical documentation says a JSON object is built on two structures: a list of key-value pairs and an ordered list of values.

What is JSON dump Python?

The dump() method is used when the Python objects have to be stored in a file. The dumps() is used when the objects are required to be in string format and is used for parsing, printing, etc, . The dump() needs the json file name in which the output has to be stored as an argument.


1 Answers

The parentheses in your original code are unbalanced. If I remove one parentheses in the beginning:

>>> a = [["thisid", 24024502], ["points", [[["lat", 37.8732041], ["lon", -122.2562601]], [["lat", 37.8729153], ["lon", -122.2561566]]]], ["name", "Latimer Hall"]]
>>> b = dict(a)
>>> for i, l in enumerate(b['points']):
...     b['points'][i] = dict(l)
... 
>>> b
{'points': [{'lat': 37.8732041, 'lon': -122.2562601}, {'lat': 37.8729153, 'lon': -122.2561566}], 'thisid': 24024502, 'name': 'Latimer Hall'}
>>> 

Then I can serialize it to json.

like image 131
warvariuc Avatar answered Sep 23 '22 17:09

warvariuc