Python之json串与字典间的转换

1、json串
在将接口的时候,有说到json串,接口返回的格式就是json格式

{
        "error_code": 0,
        "stu_info": [
                {
                        "id": 309,
                        "name": "小白",
                        "sex": "男",
                        "age": 28,
                        "addr": "河南省济源市北海大道32号",
                        "grade": "天蝎座",
                        "phone": "18512572946",
                        "gold": 100
                },
                {
                        "id": 310,
                        "name": "小白",
                        "sex": "男",
                        "age": 28,
                        "addr": "河南省济源市北海大道32号",
                        "grade": "天蝎座",
                        "phone": "18516572946",
                        "gold": 100
                }
        ]
}


#这是接口返回的数据,是k-v格式,字典也是k-v格式,这两者之间是不是能够转换?

2、json串转换成字典

str='''{"user":123,"yang":987}'''  #一个json格式的字符串 json串是双引号
import json   
res=json.loads(str)  #json字符串转换成字典
print(res)  #{'user': 123, 'yang': 987}结果就是字典,字典是单引号

3、字典转换成json串

dic={'user':123,'dan':000}
import json
str2=json.dumps(dic)   #把字典转换成json字符串
print(str2)   #dic={'user':123,'dan':000}运行结果

stus = {'xiaojun':'123456','xiaohei':'7891','tanailing':'11111'
         ,'海龙':'111'}
res2=json.dumps(stus,indent=4,ensure_ascii=False)
 #把字典stus转换成json串   ensure_ascii=False显示中文  indent=4缩进4格
with open('stus.json','w',encoding='utf-8') as f:
     f.write(res2) 

f = open('stus2.json','w',encoding='utf-8')
json.dump(stus,f,indent=4,ensure_ascii=False)
#dump直接将文件转成文件转换城json串
#运行代码,在stus.json里可以看到是json串
#总结,在转换成字符串时,用dumps是传字符串,dump是直接转字符串所在的文件

4、把json类型文件转换成字典

f = open('stus.json', encoding='utf-8')
content = f.read()   #文件转换成字符串
user_dic = json.loads(content)   #loads传的是字符串
print(user_dic)   #json串转换成字典


#更适合的一种方法
f = open('stus.json',encoding='utf-8')
user_dic = json.load(f)   #load是传文件,将一个文件自动转换成字典
print(user_dic)
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值