Pythonベース:jsonシーケンス化と逆シーケンス化

2639 ワード

jsonライブラリでは、dump、dumps、load、loadsの4つの方法が一般的です.ここでdumpとdumpsは辞書と配列をjson形式に変換するために使用され、dumpは変換結果を直接ファイルに書き込み、dumpsは文字列を返す.loadとloadsはjson形式のデータを辞書形式に変換し、loadは直接jsonファイルからデータを読み出して辞書オブジェクトに戻り、loadsは文字列形式のjsonデータを辞書形式に変換する.
'''json         

json        
json   : python        json    
json    : json       python     

'''

'''           '''
#       
import json
dict1 = {'name': 'AI', 'age': 18, 'address': 'beijing'}    #   :     ,       , json  ,    
new = json.dumps(dict1)
print(new, type(new))

#       :
# {"name": "AI", "age": 18, "address": "beijing"} 

#        
newdict = json.loads(new)
print(newdict, type(newdict))

#       :
# {'name': 'AI', 'age': 18, 'address': 'beijing'} 

'''           '''
#       
list1 = ["aa", "bb", "cc"]
list_str = json.dumps(list1)
print(list_str, type(list_str))

#       :
# ["aa", "bb", "cc"] 

#        
newlist = json.loads(list_str)
print(newlist, type(newlist))

#       :
# ['aa', 'bb', 'cc'] 

'''           '''
#       
tuple1 = ("aaa", "bbb", "ccc")
tuple_str = json.dumps(tuple1)
print(tuple_str, type(tuple_str))

#       :
# ["aaa", "bbb", "ccc"] 

#        
newtuple = json.loads(tuple_str)
print(newtuple, type(newtuple))

#       :
# ['aaa', 'bbb', 'ccc']           #       :              ,    

'''           :         ,           json   ,           '''

import json
accounts={10: {'name': 'AI', 'age': 18, 'address': 'beijing'}}   #     


def json_file():
    with open('info.json', 'w') as f1:
        f1.write(json.dumps(accounts))       #            

    with open('info.json', 'r') as f2:
        type_json = json.load(f2)            #             
        print("        :", type_json, "  :", type(type_json))

    type_json['sex'] = 'boy'                 #          
    json.dump(type_json, open('info.json', 'w'))         #          json      


if __name__ == '__main__':
    json_file()

#   json        :
# {"10": {"name": "AI", "age": 18, "address": "beijing"}, "sex": "boy"}