トップページへ

PythonでJSONファイルの日本語キーを読む方法

小粋空間 » Programming Language » Python » PythonでJSONファイルの日本語キーを読む方法

PythonでJSONファイルの日本語キーを読む方法を紹介します。

1.問題点

次のJSONファイルがあります。文字コードはUTF-8です。

sample.json

{
"内容" : "工事",
"情報" : [
  {
  "番号" : "123",
  "名前" : "東京"
  },
  {
  "番号" : "456",
  "名前" : "大阪"
  } ]
}

このファイルを読み込み、"東京"というデータを表示するPythonスクリプト(sample.py)を作りました。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
import sys
import json
 
# 引数取得
args = sys.argv
 
# JSONファイルオープン,パース
f = open(args[1], 'r')
data = json.load(f, 'utf-8')
f.close()
 
print json.dumps(data["情報"][0]["名前"], ensure_ascii=False)

が、実行すると次のようなKeyErrorになります。

# ./sample.py sample.json
Traceback (most recent call last):
  File "./sample.py", line 14, in 
    print json.dumps(data["情報"][0]["名前"], ensure_ascii=False)
KeyError: '\xe6\x83\x85\xe5\xa0\xb1'

ということで、PythonでJSONファイルの日本語キーを読む方法を紹介します。

2.日本語のキーを読む

PythonでJSONファイルの日本語キーを読むには、JSONを取得する際のキーに"u"を付与します。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
import sys
import json
 
args = sys.argv
 
# JSONファイルオープン,パース
f = open(args[1], 'r')
data = json.load(f, 'utf-8')
f.close()
 
print json.dumps(data[u"情報"][0][u"番号"], ensure_ascii=False)

実行結果

# ./sample.py sample.json
"東京"

« 前の記事へ

次の記事へ »

トップページへ