4

jsonpickle が Google アプリ エンジンで動作している人はいますか? 私のログはモジュールがないと言っていますが、あなたが生まれたのと同じくらい確かなモジュールがあります。私はjsonpickle 0.32を使用しています。

<type 'exceptions.ImportError'>: No module named jsonpickle
Traceback (most recent call last):
  File "/base/data/home/apps/xxxxx/xxxxxxxxxxxxxxxxx/main.py", line 4, in <module>
    import jsonpickle
4

2 に答える 2

4

django.utils.simplejsonを json エンコーダー/デコーダーとして登録して動作させることができました。この実際のファイルでは、 index.py クラスの Pizza がエンコードおよびデコードされます。

from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app

import jsonpickle

class Pizza:
    pass                

class Example(webapp.RequestHandler):
    def get(self):
        jsonpickle.load_backend('django.utils.simplejson',
                                'dumps','loads',ValueError)
        encoded = jsonpickle.encode(Pizza())
        self.response.out.write( jsonpickle.decode(encoded).__class__ )

run_wsgi_app(webapp.WSGIApplication([('/', Example),],debug=True))
于 2010-01-05T15:14:19.067 に答える
3

この記事で説明しているように、jsonpickleにはいくつかの基礎となる JSON モジュールの 1 つが必要です。次のように問題を修正します-次の数行をjsonpickleが必要なモジュールの先頭に配置します。

import sys
import django.utils.simplejson
sys.modules['simplejson'] = django.utils.simplejson

これは問題に対処します: jsonpickle はsimplejson(使用できる JSON モジュールの 1 つとして) 必要ですが、GAE はそれを として持っているdjango.utils.simplejsonため、適切に「エイリアス」する必要があります。

于 2010-01-05T02:45:15.383 に答える