J'ai essayé de trouver un bon moyen de charger des objets JSON en Python. J'envoie ces données JSON :
{'http://example.org/about': {'http://purl.org/dc/terms/title': [{'type': 'literal', 'value': "Anna's Homepage"}]}}
vers le backend où il sera reçu sous forme de chaîne de caractères, puis j'ai utilisé la fonction json.loads(data)
pour l'analyser.
Mais à chaque fois, j'ai obtenu la même exception :
ValueError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
J'ai cherché sur Google mais rien ne semble fonctionner à part cette solution. json.loads(json.dumps(data))
qui personnellement me semble peu efficace puisqu'il accepte tout type de données même celles qui ne sont pas au format json.
Toute suggestion sera très appréciée.
72 votes
Mon erreur n'était pas de mettre des guillemets doubles. J'ai ajouté une virgule après la dernière paire clé-valeur comme on le fait en python. Ce n'est pas le cas en JSON.
12 votes
toujours utiliser
json.dumps()
plutôt que d'écrire en python et d'espérer que la notation python fonctionnera dans votre lecteur JavaScript.0 votes
J'ai rencontré ce problème parce que j'ai pris le résultat d'un
print(jsonpickle_deserialized_object_string)
et a essayé de l'utiliser. Pour une raison ou pour une autreprint()
modifie les citations de"
à'
0 votes
@Luv33preet, merci, j'ai résolu le problème, mais je m'attendais à ce que le logger-msg soit une virgule manquante ou quelque chose comme ça, mais cette erreur ne dit rien à ce sujet,
0 votes
Voir stackoverflow.com/a/63862387/1497139 pour une solution rapide
0 votes
Mon erreur a été de laisser quelques
//
des commentaires javascript dans le JSON qui a été envoyé au serveur, qui n'est pas un JSON valide.0 votes
Cela pourrait faire gagner du temps à quelqu'un. Dans mon cas, j'ai envoyé une requête Postman avec une variable non définie. Cela m'est arrivé après avoir migré mes collections de l'espace de travail d'une équipe vers mon espace de travail personnel, en omettant d'exporter l'environnement correspondant. Après avoir configuré les variables de Postman, la requête était bien analysée.