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を意味します.
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"}