json changer la - Comment convertir un objet javascript brut en dictionnaire python?


1 Answers

Cela ne fonctionnera probablement pas partout, mais pour commencer, voici une simple regex qui devrait convertir les clés en guillemets afin que vous puissiez passer dans json.loads. Ou est-ce ce que vous faites déjà?

In[70] : quote_keys_regex = r'([\{\s,])(\w+)(:)'

In[71] : re.sub(quote_keys_regex, r'\1"\2"\3', js_obj)
Out[71]: '{"x":1, "y":2, "z":3}'

In[72] : js_obj_2 = '{x:1, y:2, z:{k:3,j:2}}'

Int[73]: re.sub(quote_keys_regex, r'\1"\2"\3', js_obj_2)
Out[73]: '{"x":1, "y":2, "z":{"k":3,"j":2}}'
classe d'un élément

Lorsque je gratte un site Web, j'extrais des données de balises <script> .
Les données que je reçois ne sont pas au format JSON standard. Je ne peux pas utiliser json.loads() .

# from
js_obj = '{x:1, y:2, z:3}'

# to
py_obj = {'x':1, 'y':2, 'z':3}

Actuellement, j'utilise regex pour transformer les données brutes au format JSON .
Mais je me sens très mal quand je rencontre une structure de données compliquée.

Avez-vous de meilleures solutions? Merci pour le partage!



Related