В настоящее время я пытаюсь преобразовать данные из шейп-файла ESRI (.shp) в Json-файл, используя пакет json.Преобразование/Сериализационные словари, содержащие большой список пар значений в json-файл в python
В этом процессе, я хочу, чтобы преобразовать dictionairy, содержащий координаты множества различных точек:
json.dumps({"Points" : coordinates})
В списке «координаты» выглядит следующим образом:
[[-2244.677490234375, -3717.6876220703125], [-2252.7623006509266, -3717.321774721159],
..., [-2244.677490234375, -3717.6876220703125]]
и содержит около нескольких сотни координатных пар.
Однако, когда я пытаюсь выполнить json.dumps, я получаю следующее сообщение об ошибке:
[-2244.677490234375, -3717.6876220703125] is not JSON serializable
Моя первая мысль была, что она не может обрабатывать значения десятичного/поплавка Но если я выполнить следующий рабочий пример содержащий только два из координатных пар:
print(json.dumps({"Points" : [[-2244.677490234375, -3717.6876220703125],
[-2244.677490234375, -3717.6876220703125]]}))
Tt работы, и я не получаю сообщение об ошибке ... выход в этом случае:
{"Points": [[-2244.677490234375, -3717.6876220703125], [-2244.677490234375, -3717.6876220703125]]}
Я не понимаю, почему он не работает с моими «координатами» -list.
спасибо! Теперь он работает, но я до сих пор не понимаю предыдущий proplem полностью ... Мои координаты на самом деле были списками. Поэтому, когда я пытался применить .tolist(), произошла ошибка, заявив, что списки не имеют метода к списку(). Итак, я преобразовал свои списки в массивы numpy, которые я, чем конвертировал обратно в списки, используя .tolist() ... И странно, теперь он работает :-D – Jannik
Ah отлично. Там определенно была проблема с объектами ... Я думаю, мы никогда не узнаем :) – craigts
BTW Я думаю, у вас был список массивов numpy, но не на 100% уверен. Также, пожалуйста, не забудьте отметить мой как ответ. – craigts