Python 之 json 模块

系统 1807 0

前言:

json是一种通用的数据类型,任何语言都认识,长得像字典,形式也是k-v { },其实 json 是字符串。字符串不能用key、value来取值,要先转成字典才可以

格式如下:

            
              {
        "error_code": 0,#要使用双引号,如果是单引号则运行时会报错,可以上网做在线json格式校验
        "stu_info": [
                {
                        "id": 0,
                        "name": "a",
                        "sex": "男",
                        "age": 22,
                        "grade": "天蝎座",
                        "gold": 100
                },
                {
                        "id": 1,
                        "name": "b",
                        "sex": "男",
                        "age": 23,
                        "grade": "天蝎座",
                        "gold": 100
                }
        ]
}
            
          

json 操作:

json串转成字典

.loads() 和 .load() 方法

区别:loads()传的是字符串,而load()传的是文件对象,使用loads()时需要先读文件再使用,而load()则不用

            
              loads:
import json
f=open('stus.json',encoding='utf-8')
content=f.read()#使用loads()方法,需要先读文件
user_dic=json.loads(content)
print(user_dic)


load:
import json
f=open('stus.json',encoding='utf-8')
user_dic=json.load(f)
print(user_dic)
            
          

字典转成 json 串

.dumps() 和 .dump() 方法

区别:.dump()不需要使用.write()方法,只需要写哪个字典、哪个文件即可;而.dumps()需要使用.write()方法写入;如果要把字典写到文件里面的时候,dump()好用;但如果不需要操作文件,或需要把 内容存到数据库和Excel ,则需要使用 dumps() 先把字典转成字符串,再写入

            
              dumps:
stus={'xiaojun':'123456','xiaohei':'7890','lrx':'111111'}
res2=json.dumps(stus,indent=8,ensure_ascii=False)
print(res2)
with open('stus.json','w',encoding='utf-8') as f:  #使用.dumps()方法时,要写入
    f.write(res2)



dump:
stus={'xiaojun':'123456','xiaohei':'7890','lrx':'111111'}
f=open('stus2.json','w',encoding='utf-8')
json.dump(stus,f,indent=4,ensure_ascii=False)
            
          

dump\dumps参数

.dumps\dump中使用参数indent,为字符串换行+缩进:

            
              res2=json.dumps(stus.indent=4)
print(res2)#打印字符串
#结果为: 
'''
{
    "xiaojun": "123456",
    "xiaohei": "7891",
    "lrx": "hailong",
    "tanailing": "111111"
}
'''
            
          

.dumps\dump中使用参数ensure_ascii,为内容输出为中文:

            
              res2=json.dumps(stus,indent=4,ensure_ascii=False)   #为False时内容输出显示正常的中文,而不是转码
print(res2)
            
          

### 不管是dump还是load,带s的都是和字符串相关的,不带s的都是和文件相关的。

 

 

 

 

 

 

 


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论