mjhmの答えに続いてOrsoneredDictにjsonファイルをロードしようとしています。Can I get JSON to load into an OrderedDict in Python?。私はシンプルさとコードのためだけのJSON文字列とされ始めている:python 2.6でOrderedDictにjsonをロード - 予期しないキーワードエラー
#!/usr/bin/python
import simplejson as json
import ordereddict
testjson='{ "foo": 1, "bar": 2 }'
my_ordered_dict = json.loads(testjson, object_pairs_hook=ordereddict.OrderedDict)
上記を実行している場合しかし、私は次のエラーを取得する:
Traceback (most recent call last):
File "./l.py", line 8, in <module>
my_ordered_dict = json.loads(testjson, object_pairs_hook=ordereddict.OrderedDict)
File "/usr/lib64/python2.6/site-packages/simplejson/__init__.py", line 318, in loads
return cls(encoding=encoding, **kw).decode(s)
TypeError: __init__() got an unexpected keyword argument 'object_pairs_hook'
私は、Python 2.6.6によsimplejsonのバージョンは2.0.9です。 jsonファイルをOrderedDictにロードする方法はありますか?目的は、jsonを読み込んでいくつかのエントリを追加し、元のjsonファイルの順序を保持してプリントアウトすることです。
編集:
それはまだ動作しないのsimplejsonアップグレードした後 - のsimplejsonの異なるバージョンがピップで、スクリプトによって報告されました。
$ pip show simplejson
DEPRECATION: Python 2.6 is no longer supported by the Python core team, please upgrade your Python. A future version of pip will drop support for Python 2.6
Name: simplejson
Version: 3.10.0
Summary: Simple, fast, extensible JSON encoder/decoder for Python
Home-page: http://github.com/simplejson/simplejson
Author: Bob Ippolito
Author-email: [email protected]
License: MIT License
Location: /usr/lib64/python2.6/site-packages
Requires:
は、どちらものsimplejsonモジュールに同じ場所を報告し、両方があるように見える:
simplejson version: 2.0.9
simplejson path: /usr/lib64/python2.6/site-packages/simplejson/__init__.pyc
しかし
、PIPレポート:
print "simplejson version: " + json.__version__
print "simplejson path: " + json.__file__
それは出力します。私は、スクリプトに以下を追加しましたインストール済み:
$ ls -ld /usr/lib64/python2.6/site-packages/simplejson*
drwxr-xr-x 3 root root 4096 May 9 15:29 /usr/lib64/python2.6/site-packages/simplejson
drwxr-xr-x 2 root root 4096 May 9 15:29 /usr/lib64/python2.6/site-packages/simplejson-2.0.9-py2.6.egg-info
drwxr-xr-x 2 root root 4096 May 9 09:10 /usr/lib64/python2.6/site-packages/simplejson-3.10.0-py2.6.egg-info
どうすればpythonがバージョン2.0.9ではなくバージョン3.10.0を使用していることを確認できますか?
あなたの 'simplejson'を更新してください。 – user2357112