JSONとPythonオブジェクト間の相互変換をPythonで実現する方法について
2188 ワード
JSON(JavaScript Object Notation)は、JavaScriptプログラムがデータ構造を記述するオリジナルの方法で、データをフォーマットして読むことができる文字列にすることができます.
PythonのjsonモジュールはJSON形式のデータを扱うことができます.ただしJSONはJavaScriptシステムであるため、文字列、整数型、浮動小数点型、ブール型、リスト、辞書、NoneTypeのみを表すことができる.
1 JSON文字列からPythonオブジェクトへ
JSONデータを含む文字列をPythonオブジェクトに変換するにはjsonに渡す.loads()関数、loadsはload stringを意味します.
実行結果:
この関数はPython辞書として返されます.Python辞書には順序がないため、出力されるキー値ペアが異なる順序で現れる可能性があります.しかし,実測では,出力は通常元のデータの順序を保つことが分かった.
2 PythonオブジェクトからJSON文字列へ
json.dumps()関数は、PythonオブジェクトをJSON形式の文字列に変換します.ここのdumpsはdump stringを意味します.
実行結果:
PythonのjsonモジュールはJSON形式のデータを扱うことができます.ただしJSONはJavaScriptシステムであるため、文字列、整数型、浮動小数点型、ブール型、リスト、辞書、NoneTypeのみを表すことができる.
1 JSON文字列からPythonオブジェクトへ
JSONデータを含む文字列をPythonオブジェクトに変換するにはjsonに渡す.loads()関数、loadsはload stringを意味します.
import json
import logging
import os
logging.basicConfig(level=logging.DEBUG, format='%(levelname)s - %(message)s')
'''
JSON
@author Deniro Li
'''
os.chdir('F:/temp/')
# JSON JSON
json_data_str = ''' {
"id": "/en/45_2006",
"directed_by": [
"Gary Lennon"
],
"initial_release_date": "2006-11-30",
"genre": [
"Black comedy",
"Thriller",
"Psychological thriller",
"Indie film",
"Action Film",
"Crime Thriller",
"Crime Fiction",
"Drama"
],
"name": ".45"
}'''
json_data = json.loads(json_data_str)
logging.info('json_data -> ' + str(json_data))
実行結果:
INFO - json_data -> {'id': '/en/45_2006', 'directed_by': ['Gary Lennon'], 'initial_release_date': '2006-11-30', 'genre': ['Black comedy', 'Thriller', 'Psychological thriller', 'Indie film', 'Action Film', 'Crime Thriller', 'Crime Fiction', 'Drama'], 'name': '.45'}
この関数はPython辞書として返されます.Python辞書には順序がないため、出力されるキー値ペアが異なる順序で現れる可能性があります.しかし,実測では,出力は通常元のデータの順序を保つことが分かった.
2 PythonオブジェクトからJSON文字列へ
json.dumps()関数は、PythonオブジェクトをJSON形式の文字列に変換します.ここのdumpsはdump stringを意味します.
python_value={'id':'/en/45_2006','name':'.45'}
json_value=json.dumps(python_value)
logging.info('json_value -> ' + str(json_value))
実行結果:
INFO - json_value -> {"id": "/en/45_2006", "name": ".45"}