2011-03-08 4 views
0
import simplejson 
from urllib2 import urlopen 
from simplejson import loads 
from django.core import serializers 
content = loads(urlopen('https://graph.facebook.com/1234676502/feed').read()) 
content = simplejson.dumps(content,sort_keys=True, indent=4) 
print content 
json_serializer = serializers.get_serializer("json")() 
json_serializer.deserialize(content) 

Pendant l'exécution du code Python ci-dessus im obtenir l'erreur suivante:Comment désérialiser cet objet JSON?

Traceback (most recent call last): 
    File "/var/www/youedo/test.py", line 22, in <module> 
    json_serializer = serializers.get_serializer("json")() 
    File "/usr/local/lib/python2.6/dist-packages/django/core/serializers/__init__.py", line 63, in get_serializer 
    _load_serializers() 
    File "/usr/local/lib/python2.6/dist-packages/django/core/serializers/__init__.py", line 109, in _load_serializers 
    register_serializer(format, BUILTIN_SERIALIZERS[format], serializers) 
    File "/usr/local/lib/python2.6/dist-packages/django/core/serializers/__init__.py", line 51, in register_serializer 
    module = importlib.import_module(serializer_module) 
    File "/usr/local/lib/python2.6/dist-packages/django/utils/importlib.py", line 35, in import_module 
    __import__(name) 
    File "/usr/local/lib/python2.6/dist-packages/django/core/serializers/xml_serializer.py", line 6, in <module> 
    from django.core.serializers import base 
    File "/usr/local/lib/python2.6/dist-packages/django/core/serializers/base.py", line 7, in <module> 
    from django.db import models 
    File "/usr/local/lib/python2.6/dist-packages/django/db/__init__.py", line 14, in <module> 
    if not settings.DATABASES: 
    File "/usr/local/lib/python2.6/dist-packages/django/utils/functional.py", line 276, in __getattr__ 
    self._setup() 
    File "/usr/local/lib/python2.6/dist-packages/django/conf/__init__.py", line 38, in _setup 
    raise ImportError("Settings cannot be imported, because environment variable %s is undefined." % ENVIRONMENT_VARIABLE) 
ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined. 

... et quand j'imprimer le contenu qu'elle imprime correctement la chaîne JSON.

Edit: 2 import simplejson d'import urllib2 urlopen des charges d'importation simplejson de django.core sérialiseurs d'importation content = charges (urlopen ('https://graph.facebook.com/1234676502/feed «) .Lire())

json_serializer = serializers.get_serializer("json")() 
json_serializer.get_deserialize(content) 

Je mets ce code dans mon view.py alors j'obtenu l'erreur suivante:

AttributeError at /rss 

'Serializer' object has no attribute 'get_deserialize' 

Request Method:  GET 
Request URL: http://127.0.0.1:8000/rss 
Django Version:  1.2.4 
Exception Type:  AttributeError 
Exception Value:  

'Serializer' object has no attribute 'get_deserialize' 

Répondre

1

Votre erreur n'a rien à voir avec json en soi, elle indique clairement qu'elle ne peut pas importer DJANGO_SETTINGS, ce qui signifie que vous n'avez pas le contexte de l'application django en place. Le moyen le plus simple d'y parvenir est d'installer les extensions django qui fournissent la commande ./manage.py runscript qui exécute votre script avec le contexte de votre application django.

Django extensions can be found here

Edit:: regarder votre deuxième édition, je peux voir que vous utilisez une méthode get_deserialize(), la bonne méthode devrait être deserialize(), autant que je sache.

+0

Je l'ai changé alors j'obtiens cette erreur "type objet 'Serializer' n'a pas d'attribut 'désérialiser'" – Prem

Questions connexes