Python 2.5可以使用哪个JSON模块?

63

我想使用Python的JSON模块。然而,该模块是从Python 2.6版本开始引入的,而我暂时只能使用Python 2.5版本。请问是否有办法将Python 2.6中提供的JSON模块作为单独的模块来在Python 2.5中使用呢?


https://dev59.com/QlgR5IYBdhLWcg3wUL8J#41466452 - cs95
6个回答

63
你可以使用 simplejson
答案 中由pkoch所示,你可以使用以下导入语句获取与已安装的Python版本相对应的JSON库:
try:
    import json
except ImportError:
    import simplejson as json 

1
谢谢!有很多JSON模块,我不确定哪个是Python 2.6中使用的。 - moinudin
1
现在已经很晚了,但是你如何编写一个脚本来根据安装的Python版本导入json或simplejson呢? - Wells
3
@Wells: try: import json; except ImportError: import simplejson --抱歉,排版有误。 - kojiro
我不敢相信在 rene 把它编辑为像样的东西之前,这个答案获得了60个赞。 - Tim

49

致Wells及其他人:

虽然来晚了,但你们如何编写一个脚本,根据安装的Python版本导入json或simplejson?

以下是方法:

try:
    import json
except ImportError:
    import simplejson as json 


嗯,我会选择另一种方式,因为simplejson有更快的实现。如果你在Python >= 2.6上有simplejson,最好使用它而不是json。 - schlamar
1
每个人都使用自己选择的性能屏蔽帽。我喜欢标准库,仅仅因为它是标准库。如果你有不同意见,请随时提供基准测试,让其他人可以同意你的观点。 - pkoch
3
simplejson有一个C扩展,这里不需要进行基准测试;-) 如果未编译C扩展(例如安装时缺少编译器),则它完全是相同的库。请参见http://pypi.python.org/pypi/simplejson/。 - schlamar

4
我写了cjson 1.0.6的补丁,我的建议是不要使用cjson--它在处理unicode等方面存在其他问题。我认为cjson的速度不值得处理这些错误--编码/解码json通常只占用处理典型web请求所需时间的一小部分...
Python 2.6+中的json基本上是简单的json库,被引入到标准库中...

1

1
我想保持与2.6提供的默认库兼容,否则我会同意你的观点。 - moinudin

-1

我也在使用Python 2.5进行编程,需要一个合适的库。这是我的做法。

http://pypi.python.org/simple/simplejson/下载了simplejson的egg文件,名为simplejson-2.0.6-py2.5-linux-i686.egg。

使用以下命令进行安装:

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

然后通过以下方式将json库导入脚本文件中:

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")

-1

json 是一个内置模块,您不需要使用 pip 安装它。


1
文档的第一行说:“新增于2.6版本”,而问题特别要求Python 2.5的模块。 - tjysdsg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接