1 import json 2 # json的特点:所有的key都带双引号,value:除了数字和null没双引号外,其余都带双引号 3 4 5 # 1.对象结构(单个json数据) 6 # json以字符串的形式在python中 7 # json格式的字符串:值有单独的null,这是json中的空 8 # dict格式的字符串:值有None,这是python中的空 9 data_json = '{"msg":"登录成功","code":"10001","data":null,"status":1}' 10 11 # 不能使用eval(data_json)进行转换,因为有null会报错,除非将null用引号括起来“null”才可用eval函数 12 # 将json格式的字符串(单一的对象结构类似字典/复杂的嵌套字典的列表格式)转化为python中的字典类型(字典/嵌套字典的列表),用loads. 13 data_dict = json.loads(data_json, encoding='utf-8') 14 print(data_dict) 15 16 17 18 # 将python中的字典类型/嵌套字典的列表转换为json格式的数据,用dumps 19 one_dict = {'name':'岁岁','age':20,'money':None} 21 one_json = json.dumps(one_dict,ensure_ascii=False) # 转换为json时中文需要转换一下才可正常显示 22 print(one_json) 23 24 25 # 将文件中的json转换为python中的字典: 26 # json格式的数据已放在json_text.txt文件中:{'name':'岁岁','age':20,'money':None} 27 # 对文件进行操作:打开文件--读取文件--关闭文件 28 with open("json_text.txt", encoding="utf-8") as file: # 默认为读,可省略不写 29 # json格式在文件中时,使用load将json转换为python中的字典 30 one_dict = json.load(file) 31 print(one_dict) 32 file.close() 33 34 # 将嵌套字典的列表/字典写入到文件中: 35 # 这里以复杂的嵌套字典的列表为例 36 two_dict = [{"one":{'name':'岁','age':29,'money':None}}, 37 {"two": {'name':'豆豆', 'age': 21, 'money': True}}, 38 {"three": {'name': '欧可', 'age': 19, 'money': None}}] 39 # 对文件进行操作:打开文件--读取文件--关闭文件 40 with open("write_json.txt", mode="w", encoding="utf-8")as one_file: 41 # 将json格式的字典/嵌套字典的列表写入到文件用dump 42 json.dump(two_dict,one_file,ensure_ascii=False, indent=2) # indent缩键美化2格 43 one_file.close()