0
votes

Comment convertir JSON String avec "" (au lieu de ") à JSON en Python

J'ai une chaîne: xxx

Quel est le moyen le plus propérien de convertir ceci en un dictionnaire à Python?

plaine json.loads (a) ne peut pas déchiffrer ce format.

EDIT: Cette chaîne json bizarre est créée lorsque j'ai lu une CSV avec une colonne "JSON-like".


3 commentaires

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 :)


4 Réponses :


1
votes

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)


0 commentaires

0
votes

Essayez xxx

sortie xxx


0 commentaires

3
votes

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'}


0 commentaires

0
votes

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 '\"' option.

Merci pour les réponses - ils travaillent tous :)


0 commentaires