2013-10-10 4 views
-1

je rencontre quelques problèmes pour analyser un objet JSON que je reçois quand je reçois une URL:tableau JSON et python

[{"id":1,"version":23,"external_id":"2312","url":"https://example.com/432","type":"typeA","date":"2","notes":"notes","title":"title","abstract":"dsadasdas","details":"something","accuracy":0,"reliability":0,"severity":12,"thing":"32132","other":["aaaaaaaaaaaaaaaaaa","bbbbbbbbbbbbbb","cccccccccccccccc","dddddddddddddd","eeeeeeeeee"],"nana":8},{"id":2,"version":23,"external_id":"2312","url":"https://example.com/432","type":"typeA","date":"2","notes":"notes","title":"title","abstract":"dsadasdas","details":"something","accuracy":0,"reliability":0,"severity":12,"thing":"32132","other":["aaaaaaaaaaaaaaaaaa","bbbbbbbbbbbbbb","cccccccccccccccc","dddddddddddddd","eeeeeeeeee"],"nana":8}] 

Comme vous pouvez voir le JSON commencer par « [ » et se termine « ] »

J'utilise ce code:

import json 
import urllib2 

data = json.load(urllib2.urlopen('http://someurl/path/to/json')) 
print data 

Et je reçois ceci:

[{u'severity': 12, u'title': u'title', u'url': u'https://example.com/432', u'external_id': u'2312', u'notes': u'notes', u'abstract': u'dsadasdas', u'other': [u'aaaaaaaaaaaaaaaaaa', u'bbbbbbbbbbbbbb', u'cccccccccccccccc', u'dddddddddddddd', u'eeeeeeeeee'], u'thing': u'32132', u'version': 23, u'nana': 8, u'details': u'something', u'date': u'2', u'reliability': 0, u'type': u'typeA', u'id': 1, u'accuracy': 0}, {u'severity': 12, u'title': u'title', u'url': u'https://example.com/432', u'external_id': u'2312', u'notes': u'notes', u'abstract': u'dsadasdas', u'other': [u'aaaaaaaaaaaaaaaaaa', u'bbbbbbbbbbbbbb', u'cccccccccccccccc', u'dddddddddddddd', u'eeeeeeeeee'], u'thing': u'32132', u'version': 23, u'nana': 8, u'details': u'something', u'date': u'2', u'reliability': 0, u'type': u'typeA', u'id': 2, u'accuracy': 0}] 

Si le JSON est trop grand, je ne reçois pas l'information complète.

Qu'est-ce que je fais mal?

Merci

+0

ce qui est erroné avec ce que vous avez? –

Répondre

1

Il n'y a rien de mal à [] JSON. Cela signifie simplement une liste. Pour enluminer votre JSON, essayez ceci:

import json 
import urllib2 

data = json.load(urllib2.urlopen('http://someurl/path/to/json')) 
print json.dumps(data, sort_keys=True, indent=4, separators=(',', ': ')) 

Pour trouver l'objet particulier faire ceci:

obj = next((obj for obj in data if obj["id"] == 2), None) 
+0

Merci! Je suis si novice en utilisant JSON. Comment faire si je veux accéder au champ "détails" de l'objet qui a l'ID "2" ?? Merci encore! – Alberto

+0

Voir ma mise à jour –

+0

@martineau est à droite il ya une erreur avec ce code et cela ne fonctionne pas – Alberto