L'analyse JSON en Python: comment puis-je obtenir has_key() fonctionne à nouveau après un changement de format?

J'ai le bloc suivant de code Python:

data = json.loads(line)
if data.has_key('derivedFrom'):
     dFin = data['derivedFrom']
     if dFin.has_key('derivedIds'):

Cette habitude de travailler correctement sur un bloc de JSON comme ceci:

"derivedFrom": {"source": "FOO", "model": "BAR", "derivedIds": ["123456"]}

Maintenant le format a changé pour:

"derivedFrom": "{\"source\": \"FOO.\", \"model\": \"BAR\", \"derivedIds\": [\"123456\"]

Et donc la dernière ligne du Python bloc de lève l'exception suivante:

'unicode' object has no attribute 'has_key'

Est-il un moyen de prétraiter JSON pour faire has_key de travailler à nouveau?

  • Comment le changement de format? Aussi, ce bloc n'est pas valide JSON.
  • Le "changé" le format n'est pas valide JSON. Il ne sera pas analyser à tous.
  • Et, foo.has_key(bar) a été orthographié bar in foo depuis au moins Python 2.4.
  • Pourquoi/comment le changement de format?
InformationsquelleAutor I Z | 2012-12-20