python中json操作

1、写操作.json文件dumps()、dump()函数

 1 d = {
 2     'zll': {
 3         'addr': '北京',
 4         'age': 28
 5     },
 6     'ljj': {
 7         'addr': '北京',
 8         'age': 38
 9     }
10 }
1 fw = open('user_info.json', 'w', encoding='utf-8')
2 # ensure_ascii:默认值True,如果dict内含有non-ASCII的字符,则会类似\uXXXX的显示数据,设置成False后,就能正常显示
3 # dic_json = json.dumps(d,ensure_ascii=False,indent=4)  #字典转成json格式,字典转成字符串
4 dic_json = json.dumps(d, ensure_ascii=True, indent=4)  # 字典转成json格式,字典转成字符串
5 fw.write(dic_json)
6 fw.close()
结果
 1 {
 2     "zll": {
 3         "addr": "\u5317\u4eac",
 4         "age": 28
 5     },
 6     "ljj": {
 7         "addr": "\u5317\u4eac",
 8         "age": 38
 9     }
10 }

 1 fw = open('user_info.json', 'w', encoding='utf-8')
 2 # ensure_ascii:默认值True,如果dict内含有non-ASCII的字符,则会类似\uXXXX的显示数据,设置成False后,就能正常显示
 3 dic_json = json.dumps(d,ensure_ascii=False,indent=4)  #字典转成json,字典转成字符串
 5 fw.write(dic_json)
 6 fw.close()

7 结果
{  9 "zll": { 10 "addr": "北京", 11 "age": 28 12  }, 13 "ljj": { 14 "addr": "北京", 15 "age": 38 16  } 17 }

dump() 操作json文件 写的操作

 1 fw = open('user_info.json', 'w', encoding='utf-8')
 2 json.dump(d,fw,ensure_ascii=False,indent=4)  #操作文件
 3 fw.close()
 4 
 5 结果
 6 {
 7     "zll": {
 8         "addr": "北京",
 9         "age": 28
10     },
11     "ljj": {
12         "addr": "北京",
13         "age": 38
14     }
15 }

2、读操作load()、loads()

 1 # json串是一个字符串
 2 f = open('product.json',encoding='utf-8')
 3 res = f.read()
 4 product_dic = json.loads(res)  #把json串,变成python的数据类型,只能转换json串内容
 5 print(product_dic)
 6 print(product_dic['iphone'])
 7 # t = json.load(f)
 8 # print(t) #传一个文件对象,它会帮你直接读json文件,并转换成python数据
 9 # print(t['iphone'])
10 f.close()
11 
12 结果
13 {'iphone': {'color': 'red', 'num': 1, 'price': 98.5}, 'wather': {'num': 100, 'price': 1, 'color': 'white'}}
14 {'color': 'red', 'num': 1, 'price': 98.5}

 

 1 # 文件读写
 2 def op_file(file, dict_temp=None):
 3     if dict_temp:
 4         with open(file, 'w', encoding='utf-8') as fw:
 5             json.dump(dict_temp, fw, ensure_ascii=False, indent=4)
 6         return 1
 7     else:
 8         with open(file, 'r', encoding='utf-8') as fr:
 9             dict_temp = json.load(fr)
10         return dict_temp

 

posted @ 2018-04-16 17:16  静心_心静  阅读(10388)  评论(0编辑  收藏  举报