Question

J'implémente une source de données Google à l'aide de sa bibliothèque Python. . J'aimerais que la réponse de la bibliothèque puisse être importée dans un autre script Python à l'aide de bibliothèque simplejson.

Cependant, même leur exemple ne se valide pas dans JSONLint:

{cols:
    [{id:'name',label:'Name',type:'string'},
     {id:'salary',label:'Salary',type:'number'},
     {id:'full_time',label:'Full Time Employee',type:'boolean'}],
rows:
    [{c:[{v:'Jim'},{v:800,f:'$800'},{v:false}]},
     {c:[{v:'Bob'},{v:7000,f:'$7,000'},{v:true}]},
     {c:[{v:'Mike'},{v:10000,f:'$10,000'},{v:true}]},
     {c:[{v:'Alice'},{v:12500,f:'$12,500'},{v:true}]}]}

Comment puis-je modifier la fonction'jeux 'de simplejson pour importer le contenu JSON ci-dessus? Je pense que le problème principal est que les clés d’objet ne sont pas des chaînes.

Je préférerais ne pas écrire d'expression régulière pour convertir les clés en chaînes car je pense qu'un tel code serait ennuyant à maintenir.

Je reçois actuellement un "Nom de propriété en attente: ligne 1 colonne 1 (caractère 1)". erreur en essayant d’importer le JSON ci-dessus dans Python avec simplejson.

Était-ce utile?

La solution

Il est considéré comme un JSON non valide sans les clés de chaîne.

{id:'name',label:'Name',type:'string'}

doit être:

{'id':'name','label':'Name','type':'string'}

Selon la page Source de données Google , ils renvoient un JSON invalide. Ils ne le disent pas spécifiquement, mais tous leurs exemples manquent de guillemets sur les clés.

Voici une liste assez complète des processeurs JSON pour Python , qui détaillent quels formats ils supportent, et comment bien. La plupart ne prennent pas en charge les clés autres que des chaînes, , mais il semble que demjson sera converti. il.

easy_install demjson
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top