zoukankan      html  css  js  c++  java
  • python中json的基本使用

    一.json的概念

    • json是一种通用的数据类型
    • 一般情况下接口返回的数据类型都是json
    • 长得像字典,形式也是k-v{ }
    • 其实json是字符串
    • 字符串不能用key、value来取值,所以要先转换为字典才可以
    • json的格式如下:
    {
            "error_code": 0,#要使用双引号,如果是单引号则运行时会报错,可以上网做在线json格式校验
            "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
                    }
            ]
    }
    

    二、json操作

    1.json转换成字典:

    (1).load()方法

    import json
    res = json.loads(s)
    print(res)  # 打印字典
    print(type(res))  #打印res类型
    print(res.keys())  #打印字典的所有key
    
    - 要先读文件,然后转换:
    
    f = open('stus.json',encoding='utf-8')
    content = f.read() #使用loads()方法需要先读文件
    user_dic = json.loads(cotent)
    print(user_dic)
    

    (2).load()方法

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

    (3)区别

    • loads() 传的是字符串,而load()传的是文件对象
    • 使用loads()时需要先读取文件在使用,而load()则不用

    2、字典转成json串:

    - 文件里只能写字符串,但是可以把字典转成json串,json串是字符串,可以写到文件里
    (1)dumps()方法
    
    stus = {'xiaojun':'123456','xiaohei':'7891','abc':'11111'}
    res2 = json.dumps(stus)   #先把字典转成json
    print(res2)
    print(type(res2))
    
    - dumps()方法:把字典转换为json串
    
    with open('stus.txt','w',encoding='utf-8') as f: # 打开文件
        f.write(res2)  #在文件里写入转成的json串
    
    - 使用.dumps()方法前,要先打开文件,再写入:
    
    stus={'xiaojun':'123456','xiaohei':'7890','lrx':'111111'}
    res2 = json.dumps(stus,indent=8,ensuer_ascii=False)
    print(res2)
    with open("stus.json",'w‘,encoding='utf-8') as f # 使用.dumps()方法是要写入
        f.write(res2)
    
    (2)dump()方法
    
    stus={'xiaojun':'123456','xiaohei':'7890','lrx':'111111'}
    f = open('stus2.json','w',encoding='utf-8')
    json.dump(stus,f,indent,ensure_ascii=False)
    
    

    (3)区别

    • dump()不需要使用.write()方法,只需要写那个字典,那个文件即可;而.dumps()需要使用.write()方法写入.
    • 如果把字典写到文件里面的时候,dump()好用;但是如果不需要操作文件,或需要把内容存储到数据库何excel,则需要使用dumps()先把字典转换成字符串,再写入.
      (4)dumpdumps参数
    • dumps/dump中使用参数indent,为字符串转行 + 缩进:
    res2=json.dumps(stus.indent=4)
    print(res2)#打印字符串
    #结果为: 
    '''
    {
        "xiaojun": "123456",
        "xiaohei": "7891",
        "lrx": "hailong",
        "tanailing": "111111"
    }
    '''
    
    • dumpsdump中使用参数 ensure_ascii,为内容输出为中文:
    res2 = json.dumps(stus,indent=4,ensure_ascii=False)  # 为False时内容输出显示正常的中文,而不是转码
    print(res2)
    

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


    微信扫码关注作者,每天get新技巧!

  • 相关阅读:
    Fix Installing .NET Framework 3.5 failed Error Code 0x800F0954 on Windows 10
    RHEL8安装五笔输入法
    Enable EPEL and Local Repository on RHEL8
    Why is Yum Replaced by DNF?
    检查Linux服务器是否被攻击的常用命令及方法
    IDEA 主题
    IDEA 如何显示一个类中所有的方法
    Appium 安装以及安装过程中遇到的问题
    Maven 如何发布 jar 包到 Nexus 私库
    java泛型的基本使用
  • 原文地址:https://www.cnblogs.com/lpdeboke/p/11414254.html
Copyright © 2011-2022 走看看