Python基礎---jsonモジュール

2133 ワード

オブジェクト(変数)がメモリから格納または転送可能になるプロセスを「シーケンス化」、Pythonではpickling、他の言語ではserialization、marshalling、flatteningなどと呼ぶのは同じ意味です.シーケンス化後、シーケンス化されたコンテンツをディスクに書き込むか、ネットワークを介して別のマシンに転送することができます.逆に,変数の内容をシーケンス化したオブジェクトからメモリに読み直すことを逆シーケンス化,すなわちunpicklingと呼ぶ.
json.dumps(変数名)
  • は、入力された変数によって表されるデータ型を文字列タイプに変更し、文字列内の単一引用符''を二重引用符""に戻すために使用される.
  • dic = {'name':'alex'}
    dic_str = json.dumps(dic)   #----> '{"name":"alex"}'
    
    num = 8
    num_str = json.dumps(num)   #----> '8'
    
    st = 'hello'
    st_str = json.dumps(st)     #----> '"hello"'
    
    li = [11,22]
    li_str = json.dumps(li)     #----> '[11,22]'
    

    json.loads(変数名)
  • は、入力された変数が表す文字列タイプを元のタイプに変換し、元のタイプに戻すために使用される.
  •  dic = json.loads(dic_str)  #----> {'name':'alex'}
    

    jsonとpythonデータ対応
    import json
    x="[null,true,false,1]"
    print(json.loads(x))    #-----> [None, True, False, 1]
    

    ファイル操作用json.dump(変数名、ファイル名)
  • は、入力された変数が表すデータ型を文字列型に変更し、文字列内の''""に変更し、ファイルのwrite()メソッドを実行することなく指定されたファイルに書き込むために使用される.
  • with open('test','w') as f:
       json.dump(dic,f)        #---->    dic_str = json.dumps(dic)  
                                           #f.write(dic_str)
    

    json.load(ファイル名)
  • は、ファイル内の文字列タイプを元のタイプに直接変換し、ファイルのread()メソッドを実行する必要がなく読み出すために使用されます.
  • with open('test','r') as f:
       json_read = json.load(f)        #---->       dic=f. read()
                                       #             dic_str = json.loads(dic)
    print(json_read)
    

    注意json.dumps()json.loads()は、必ずしも一緒に使用する必要はありません.ファイル内の文字列タイプがjsonの要件を満たしている場合は、json.loads()を使用してファイルを直接読み込むことができます.
    import json
    #dct="{'1':111}"#json      
    #dct=str({"1":111})#  ,            :{'one': 1}
    
    dct='{"1":"111"}'
    print(json.loads(dct))