JSONオブジェクトをPython関数の引数として渡す方法
Pythonでは、JSON形式の文字列をそのまま関数に渡し、関数内でjson.loads()を使って辞書(dict)に変換して扱うことができます。以下に、JSONオブジェクトを関数のパラメータとして渡す基本的な例を示します。
サンプルコード
import json
json_string = '{"name":"Rupert", "age": 25, "desig":"developer"}'
print type(json_string)
def func(strng):
a = json.loads(strng)
print type(a)
for k, v in a.iteritems():
print k, v
print dict(a)
func(json_string)実行結果
<type 'str'>
<type 'dict'>
desig developer
age 25
name Rupert
{u'desig': u'developer', u'age': 25, u'name': u'Rupert'}コードの解説
このコードの流れは以下のとおりです。
- まず、
json_stringにはJSON形式の文字列が格納されています。出力の1行目で<type 'str'>と表示されていることからも分かります。 - 関数
func()の中でjson.loads()を呼び出すことで、JSON文字列がPythonの辞書オブジェクトに変換されます。これにより<type 'dict'>と表示されます。 - 変換後の辞書に対して
iteritems()でループ処理を行い、キーと値を1つずつ取り出して表示しています。
Python 3での注意点
上記のコードはPython 2向けの記述です。Python 3ではiteritems()メソッドが廃止されているため、代わりにitems()を使用します。また、printも関数形式になります。
import json
json_string = '{"name":"Rupert", "age": 25, "desig":"developer"}'
print(type(json_string))
def func(strng):
a = json.loads(strng)
print(type(a))
for k, v in a.items():
print(k, v)
print(dict(a))
func(json_string)このように、JSONデータを関数に渡す際は「文字列のまま渡し、受け取った側でjson.loads()でデコードする」のが基本のパターンです。逆に、辞書をJSON文字列として送りたい場合はjson.dumps()を使用します。
-
Pythonで関数を引数として渡す方法をわかりやすく解説
Pythonでは、関数もオブジェクトの一つとして扱われるため、他の関数の引数として渡すことができます。この仕組みを活用すると、柔軟で再利用性の高いコードを書くことができます。map()関数を使った例Pythonが標準で提供している代表的な例が、第一引数に関数を受け取る map() 関数です。map(function, iterable, ...) — iterable(イテラブル)の各要素に対してfunctionを適用し、その結果を返します。もちろん、独自に定義したカスタム関数でも、引数として関数を受け取るように実装できます。自作関数sqr(x)を引数として渡すここでは、リストの各要素を2乗す
-
PythonでJSONファイルを見やすく整形表示(プリティプリント)する方法
Pythonは、他の多くのプログラミング言語と同様に、JavaScript Object Notation(JSON)データをスムーズに扱うことができます。さまざまなソースからJSONデータを取り込み、他のファイルと同じように操作できるため、JSONファイルを読みやすい形で整形表示(プリティプリント)したい場合に非常に便利です。 この記事では、PythonでJSONファイルをプリティプリントする2つの方法をご紹介します。どちらの方法もターミナルとコマンドラインを使用しますが、そのうち1つはPythonの知識がまったく不要です。 プリティプリントとは?(JSONファイルで使う理由) 簡単に言え