ホームページ > バックエンド開発 > Python チュートリアル > Pythonにおけるjsonの基本的な使い方を詳しく解説

Pythonにおけるjsonの基本的な使い方を詳しく解説

高洛峰
リリース: 2017-02-23 16:48:33
オリジナル
1506 人が閲覧しました

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 &#39;dict&#39;> {u&#39;\u4e2d\u6587&#39;: u&#39;kel&#39;, u&#39;fist&#39;: u&#39;kel&#39;} 
中文 
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(&#39;kel.txt&#39;)) 
 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":&#39;kel&#39; 
}
ログイン後にコピー

kel.py の内容は次のとおりです:

 #!/usr/bin/env python 
#-*- coding:utf-8 -*- 
import json 
j = json.loads(open(&#39;kel.txt&#39;).read()) 
print type(j),j
ログイン後にコピー

二重引用符。 。 。シングルクォーテーションはバカすぎて区別がつきません

loadsメソッドを実行するとシングルクォーテーションの文字列が生成されることがあります。 。 。これは特に Python に当てはまります。これは他のこととは関係なく、主に引用符に関するものです。 ! !

以上がこの記事の全内容です。皆さんの学習に役立つことを願っています。また、皆さんも PHP 中国語 Web サイトをサポートしていただければ幸いです。

Python での json の基本的な使用法に関する詳細な記事については、PHP 中国語 Web サイトに注目してください。


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート