Python で json を使用する場合、主に json モジュールを使用します。そのため、多くの場合、json データ形式はプログラム間のインターフェイスとして使用できます。
#!/usr/bin/env python #-*- coding:utf-8 -*- import json print json.load(open('kel.txt')) #deserialize string or unicode to python object j = json.loads(open('kel.txt').read(),encoding='utf-8') print type(j),j for i in j: print i k = json.dumps(j,encoding='utf-8').decode('utf-8') print k
kel.txt ファイルの内容は次のとおりです:
{ "中文":"kel", "fist":"kel" }
実行結果は次のとおりです:
{u'\u4e2d\u6587': u'kel', u'fist': u'kel'} <type 'dict'> {u'\u4e2d\u6587': u'kel', u'fist': u'kel'} 中文 fist {"\u4e2d\u6587": "kel", "fist": "kel"}
使用される主なメソッドは次のとおりです。 jsonをロードし、 json.dumps
ロードのパラメータは文字列である必要があるため、ファイルを開くときは read メソッドを使用する必要があり、そうでない場合はエラーが発生することに注意してください。
loads メソッドは主に json データを Python のオブジェクトにロードするために使用され、dumps メソッドは主に Python オブジェクトを json 形式に変更するために使用されます。
次のようなエラーが発生するようになりました:
[root@python 56]# python kel.py Traceback (most recent call last): File "kel.py", line 5, in <module> json.load(open('kel.txt')) File "/usr/local/python/lib/python2.7/json/__init__.py", line 291, in load **kw) File "/usr/local/python/lib/python2.7/json/__init__.py", line 339, in loads return _default_decoder.decode(s) File "/usr/local/python/lib/python2.7/json/decoder.py", line 364, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/local/python/lib/python2.7/json/decoder.py", line 382, in raw_decode raise ValueError("No JSON object could be decoded") ValueError: No JSON object could be decoded
主な理由は、json データ形式が二重引用符で始まる必要があるためです。間違った json ファイルは次のとおりです:
{ "fist":'kel' }
kel.py の内容は次のとおりです:
#!/usr/bin/env python #-*- coding:utf-8 -*- import json j = json.loads(open('kel.txt').read()) print type(j),j
二重引用符。 。 。シングルクォーテーションはバカすぎて区別がつきません
loadsメソッドを実行するとシングルクォーテーションの文字列が生成されることがあります。 。 。これは特に Python に当てはまります。これは他のこととは関係なく、主に引用符に関するものです。 ! !
以上がこの記事の全内容です。皆さんの学習に役立つことを願っています。また、皆さんも PHP 中国語 Web サイトをサポートしていただければ幸いです。
Python での json の基本的な使用法に関する詳細な記事については、PHP 中国語 Web サイトに注目してください。