Actuellement, j'essaie de convertir les données d'un fichier de formes ESRI (.shp) en un fichier JSON en utilisant le paquet json.Conversion/Sérialisation de dictionnaires contenant une grande liste de paires de valeurs dans un fichier json en python
Dans ce processus, je veux convertir un dictionairy contenant les coordonnées d'un grand nombre de différents points:
json.dumps({"Points" : coordinates})
La liste « coordonnées » ressemble à:
[[-2244.677490234375, -3717.6876220703125], [-2252.7623006509266, -3717.321774721159],
..., [-2244.677490234375, -3717.6876220703125]]
et contient environ plusieurs des centaines de paires de coordonnées.
Cependant, lorsque je tente d'exécuter json.dumps, je reçois l'erreur suivante:
[-2244.677490234375, -3717.6876220703125] is not JSON serializable
Ma première pensée était, qu'il ne peut pas gérer les valeurs décimales/flotteur Mais si j'exécute l'exemple de travail suivant ne contenant que deux des paires de coordonnées:
print(json.dumps({"Points" : [[-2244.677490234375, -3717.6876220703125],
[-2244.677490234375, -3717.6876220703125]]}))
fonctionne tt et je ne suis pas une erreur ... La sortie dans ce cas est:
{"Points": [[-2244.677490234375, -3717.6876220703125], [-2244.677490234375, -3717.6876220703125]]}
Je ne comprends pas pourquoi cela ne fonctionne pas avec ma liste "coordonnées".
Merci beaucoup !! Maintenant ça marche, mais je ne comprends toujours pas le proplem précédent ... Mes coordonnées étaient en fait des listes .. Donc quand j'ai essayé d'appliquer .tolist(), une erreur est survenue, disant que les listes n'ont pas la méthode lister(). J'ai donc converti mes listes en tableaux chiffrés, que j'ai ensuite convertis en listes en utilisant .tolist() ... Et bizarrement, maintenant ça marche :-D – Jannik
Ah excellent. Il y avait certainement un problème avec les objets ... Je suppose que nous ne le saurons jamais :) – craigts
BTW Je pense que vous aviez une liste des tableaux numpy, mais pas sûr à 100%. Aussi s'il vous plaît n'oubliez pas de marquer le mien comme la réponse. – craigts