J'ai une chaîne: Quel est le moyen le plus propérien de convertir ceci en un dictionnaire à Python? p> plaine EDIT: strong>
Cette chaîne json bizarre est créée lorsque j'ai lu une CSV avec une colonne "JSON-like". P> p> json.loads (a) code> ne peut pas déchiffrer ce format. p>
4 Réponses :
Je ne connais pas ce genre de format pour Json. Vous pouvez donc utiliser la fonction suivante:
import json def load_weird_json(json_string): a = json_string.replace('""','"') a = a[1:len(a)-1] return json.loads(a)
Essayez sortie p>
Assumer la chaîne provenait d'un fichier CSV, utilisez csv code> pour décoder avant de passer le résultat à
JSON code> pour le décodage.
>>> import io, csv, json
>>> a = '"{""key1"": ""val1"", ""key2"":""val2""}"'
>>> csv_file_like = io.StringIO(a)
>>> reader = csv.reader(csv_file_like)
>>> result = list(reader)
>>> json.loads(result[0][0])
{'key1': 'val1', 'key2': 'val2'}
La réponse de @ Cheppner m'a effectivement envoyé dans la bonne direction. La chaîne a été chargée à partir de CSV et je pouvais effectivement empêcher ce json étrange formant en utilisant la réponse à partir d'ici: Spark 2.0 Lisez CSV avec JSON , c'est-à-dire Ajoutez l'évacuation Char Merci pour les réponses - ils travaillent tous :) p> '\"' code> option. p>
D'où est ce que ça vient? Un CSV?
@cheppner - oh, désolé, c'était une faute de frappe
@ Ry- oui, ça fait - bonne prise :)