2010-04-26 30 views
5

Thời gian câu hỏi Super nub! Tôi đang cố gắng sử dụng simplejson trên appengine google. Trong một thiết bị đầu cuối trên máy tính của tôi, tôi đã cài đặt và làm việc. Nhưng khi tôi cố gắng nhập khẩu nó trong một kịch bản chạy trên appengine tôi nhận được một lỗi nói rằng không có thư viện như vậy tồn tại. Nếu mở giao diện điều khiển tương tác trên máy tính của tôi (từ liên kết trên http://localhost:8080/_ah/admin) và gõ "nhập khẩu simplejson" Tôi nhận được:cài đặt simplejson trên google appengine

Traceback (cuộc gọi gần đây nhất cuối cùng): File "/ home/chris/google_appengine/google/appengine/ext/admin/init py", dòng 210, trong bài exec (compiled_code, globals()) file "", dòng 1, trong ImportError: Không có mô-đun tên simplejson

Bất kỳ suy nghĩ?

+4

nevermind, ở đây nó là: từ django.utils nhập simplejson – chriscauley

Trả lời

14

Look trong gói django:

from django.utils import simplejson as json 
obj = json.loads(json_string) 

Kể từ SDK 1.4.2 Json thể được nhập khẩu với các tuyên bố sau:

import simplejson 

Lưu ý rằng trên Python 2.7 runtime bạn có thể sử dụng native Json library.

+0

Tôi đã nhìn thấy câu trả lời này được thường xuyên cho câu hỏi này, nhưng nó có vẻ hơi lạ với tôi để nhập khẩu bất cứ thứ gì từ gói django nếu người dùng không phải là sử dụng Django. Người dùng không phải Django chỉ cần thêm simplejson chung trực tiếp vào dự án của họ? Hoặc là phiên bản được cung cấp bởi Google trong gói django bằng cách nào đó tốt hơn điều chỉnh để GAE sau đó phiên bản chung của simplejson? Vì tôi sử dụng json rất nhiều nên tôi muốn chắc chắn rằng tôi đang sử dụng phiên bản tốt nhất. – Tom

+1

Django là một phần của SDK nên tôi không thấy vấn đề gì khi sử dụng nó. Bạn cũng có thể thả đơn giản vào thư mục dự án của mình và sử dụng nó trực tiếp. Hãy nhớ rằng c tăng tốc sẽ không hoạt động, App Engine không cho phép các phần mở rộng python được viết bằng c – systempuntoout

+0

Tôi chưa xem xét cụ thể cách gói Django simplejson, nhưng chỉ nhập một phần của Django thường dẫn đến nhập _all_ của Django. Tôi không biết đây là trường hợp ở đây, nhưng nếu vậy, bạn có thể tốt hơn hết chỉ bằng cách sử dụng simplejson trong thư mục dự án của bạn. –

10

Bạn không còn cần sử dụng gói django cho simplejson trên Google App Engine nữa.

import simplejson as json 

Điều này đặc biệt hữu ích để tránh cảnh báo về các phiên bản django trong tệp nhật ký của bạn.

+3

Lưu ý rằng với python 2.7 bạn phải sử dụng 'json' vì' simplejson' được tăng tốc c. – nmat

+0

Cảm ơn @nmat giải pháp của bạn đã giúp tôi hoàn toàn :-) –

Các vấn đề liên quan