2009-04-26 13 views
62

Tôi muốn sử dụng mô-đun JSON của Python. Nó chỉ được giới thiệu trong Python 2.6 và tôi bị mắc kẹt với 2.5 cho bây giờ. Mô-đun JSON cụ thể được cung cấp với Python 2.6 có sẵn dưới dạng một mô-đun riêng biệt có thể được sử dụng với 2.5 không?Tôi có thể sử dụng mô-đun JSON nào trong Python 2.5?

Trả lời

62

Bạn có thể sử dụng simplejson.

Như đã trình bày bởi the answer dạng pkoch bạn có thể sử dụng câu lệnh nhập khẩu sau đây để có được một thư viện json tùy theo phiên bản python cài đặt:

try: 
    import json 
except ImportError: 
    import simplejson as json 
+1

Cảm ơn! Có rất nhiều mô-đun json tôi đã không chắc chắn đó là một trong những được sử dụng trong Python 2.6. – marcog

+1

Cách trễ ở đây, nhưng làm thế nào bạn có thể viết một kịch bản để nhập json hoặc simplejson tùy thuộc vào phiên bản python đã cài đặt? – Wells

+3

@Wells: 'try: import json; ngoại trừ ImportError: import simplejson' - Xin lỗi các lỗi thụt đầu dòng. – kojiro

1

Tôi thích cjson vì nó nhanh hơn nhiều: http://www.vazor.com/cjson.html

+1

Tôi muốn vẫn tương thích với thư viện mặc định được cung cấp với 2.6 mặc dù, nếu không tôi sẽ đồng ý với bạn. – marcog

49

Để Wells và những người khác:

Way late here, but how can you write a script to import either json or simplejson depending on the installed python version?

Đây là cách thực hiện:

 
try: 
    import json 
except ImportError: 
    import simplejson as json 

+0

Vâng, tôi sẽ làm điều đó theo cách khác vì simplejson có triển khai nhanh hơn. Nếu bạn có simplejson tại Python> = 2.6, bạn nên sử dụng nó thay vì json. – schlamar

+1

Mỗi người đều sử dụng chiếc mũ thiếc hiệu suất một choses. Tôi thích stdlib đơn giản chỉ vì nó là stdlib. Vui lòng không đồng ý và cung cấp điểm chuẩn để những người khác có thể đồng ý với bạn. – pkoch

+3

simplejson có một phần mở rộng C, không cần một điểm chuẩn ở đây ;-) Nếu phần mở rộng C không được biên dịch (thiếu trình biên dịch trên cài đặt ví dụ) nó là chính xác cùng một thư viện. Xem http://pypi.python.org/pypi/simplejson/. – schlamar

4

Tôi đã viết bản vá cjson 1.0.6 và lời khuyên của tôi là không sử dụng cjson - có những vấn đề khác với cjson trong cách xử lý unicode vv. Tôi không nghĩ rằng tốc độ của cjson đáng để xử lý các lỗi - mã hóa/giải mã json thường là một chút rất nhỏ thời gian cần thiết để xử lý yêu cầu web điển hình ...

json in python 2.6+ về cơ bản là simplejson đưa vào thư viện chuẩn mà tôi tin ...

-1

Tôi cũng đang lập trình bằng Python 2.5 và muốn có một thư viện phù hợp. Đây là cách tôi đã làm nó.

donwloaded file simplejson trứng gọi là simplejson-2.0.6-py2.5-linux-i686.egg từ http://pypi.python.org/simple/simplejson/

cài đặt nó bằng cách sử dụng lệnh:

sudo python ./ez_setup.py ./simplejson-2.0.6-py2.5-linux-i686.egg

Sau đó, nhập khẩu các thư viện json vào tệp tập lệnh bằng cách thực hiện:

import sys 
sys.path.append("/home/coolkid/Android/simplejson/simplejson-2.0.6-py2.5-linux-i686.egg") 
try: import simplejson as json 
except ImportError: print ("import error") 
Các vấn đề liên quan