この記事では、Python で文字列を JSON に変換するさまざまな方法を説明します。このプロセスはシリアル化と呼ばれます。 JSON モジュールは、Python オブジェクトをエンコード (シリアル化) するための関数を提供します。 JSON 文字列と JSON 文字列のデコード (逆シリアル化) Python オブジェクト 。
- JSONのエンコード(シリアル化) : Python オブジェクトがあり、それを JSON 文字列に変換したい場合は、 json.dumps() 関数。 Python オブジェクトを入力として受け取り、JSON 文字列を返します。
- JSON のデコード (逆シリアル化) : JSON 文字列を Python オブジェクトに変換したい場合は、 json.loads() 関数。 JSON 文字列を入力として受け取り、Python オブジェクトを返します。
Python で文字列を JSON オブジェクトに変換する
以下は、Python 文字列を JSON オブジェクトに変換するメソッドです。
- 使用する json.loads() 方法
- eval() メソッドの使用
- ast.literal_eval() メソッドの使用
Python の json.loads() メソッドを使用して文字列を JSON に変換する
この例では、次のメソッドを使用して辞書を JSON オブジェクトに変換します。 json.dump() 関数。次に、次を使用して JSON オブジェクトの文字列表現を辞書に変換します。 json.loads() 方法。
Python3
import> json> # initialising json object> ini_string>=> {>'nikhil'>:>1>,>'akash'> :>5>,> >'manjeet'> :>10>,>'akshat'> :>15>}> # printing initial json> ini_string>=> json.dumps(ini_string)> print> (>'initial 1st dictionary'>, ini_string)> print> (>'type of ini_object'>,>type>(ini_string))> # converting string to json> final_dictionary>=> json.loads(ini_string)> # printing final result> print> (>'final dictionary'>,>str>(final_dictionary))> print> (>'type of final_dictionary'>,>type>(final_dictionary))> |
>
>
出力:
initial 1st dictionary {'manjeet': 10, 'nikhil': 1, 'akshat': 15, 'akash': 5} type of ini_object final dictionary {'nikhil': 1, 'manjeet': 10, 'akshat': 15, 'akash': 5} type of final_dictionary> Python の eval() メソッドを使用して文字列を JSON に変換する
Python の eval() 関数は、Python 式として入力された式を評価し、プログラム内で Python 式 (コード) を実行します。
例
この例では、Python を変換しています 弦 を使用して辞書に表現する eval() メソッド 。
Python3
# initialising json object string> ini_string>=> '''{'nikhil': 1, 'akash' : 5,> >'manjeet' : 10, 'akshat' : 15}'''> # printing initial json> print> (>'initial 1st dictionary'>, ini_string)> print> (>'type of ini_object'>,>type>(ini_string))> # converting string to json> final_dictionary>=> eval>(ini_string)> # printing final result> print> (>'final dictionary'>,>str>(final_dictionary))> print> (>'type of final_dictionary'>,>type>(final_dictionary))> |
>
>
出力:
initial 1st dictionary {'nikhil': 1, 'akash' : 5, 'manjeet' : 10, 'akshat' : 15} type of ini_object final dictionary {'nikhil': 1, 'manjeet': 10, 'akash': 5, 'akshat': 15} type of final_dictionary> ast.literal_eval() メソッドを使用して文字列を JSON に変換する
ast.literal_eval() メソッドは、Python の ast(抽象構文ツリー) モジュールの一部です。この関数は、式ノード (リテラルで構成される文字列) を評価し、それを Python 辞書オブジェクトに変換します。
例
ここでは、過去のモジュールの ast.literal_eval() メソッドを使用して、辞書の文字列表現を Python に変換します。 辞書 。 ast.literal_eval 関数は文字列を解析し、同じプロパティと値を持つ Python 辞書オブジェクトを作成します。結果として得られる辞書オブジェクトのタイプは dict です。その後、標準の辞書アクセス表記法 (dict_obj[name] など) を使用して辞書オブジェクトのプロパティにアクセスできます。
Python3
import> ast> # initialize the string to be converted> string>=> '{'name': 'John', 'age': 30, 'city': 'New York'}'> # use the ast.literal_eval function to parse the string and create a dictionary object> dict_obj>=> ast.literal_eval(string)> # printing final result> print> (>'Initial string dictionary: '>,string)> print> (>'Final dictionary: '>,dict_obj)> print>(>type>(dict_obj))> |
>
パンダとナンピー
>
出力:
Initial string dictionary: {'name': 'John', 'age': 30, 'city': 'New York'} Final dictionary: {'name': 'John', 'age': 30, 'city': 'New York'}>