zoukankan      html  css  js  c++  java
  • Python基础-json处理

    json骚操作

    •    json是一种所有语言中都通用的key-value数据结构的数据类型,很像python中的字典,json处理使用json模块,json模块有下面常用的方法:

    1、字典转成json串了,是双引号

    # python的数据类型和json互相转换的
    # json就是一串字符串
    import json
    
    d = {"key1": "v1", 'k2': 'v2', 'k3': 'v3'}
    print(d)  # 字典打印出来的结果
    print(json.dumps(d))  # 字典转成json串了,是双引号

    运行结果:

    {'key1': 'v1', 'k2': 'v2', 'k3': 'v3'}
    {"key1": "v1", "k2": "v2", "k3": "v3"}

    2、json转成字典,用loads

    import json
    
    d = {"key1": "v1", 'k2': 'v2', 'k3': 'v3', 'name': '六六'}
    # for i in range(10):#循环10次
    #     d['key%s'%i] = i
    json_str = json.dumps(d, indent=4, ensure_ascii=False)
    print(json_str)  #  indent缩进 ,ensure_ascii=False 显示中文“六六”
    dic = json.loads(json_str)  # json转成字典
    print(dic)

    运行结果:

    {
        "key1": "v1",
        "k2": "v2",
        "k3": "v3",
        "name": "六六"
    }
    {'key1': 'v1', 'k2': 'v2', 'k3': 'v3', 'name': '六六'}

    3、错误的json串(#网站:bejson.com校验json格式)

    import json  # 网站:bejson.com校验json格式
    
    json_str = '''
        {
        'key1': 1,   #需双引号,会报错
        "k2": "v2",
        "k3": "v3",
        "name": "六六"
    }
    '''
    dic = json.loads(json_str)  # json转字典
    print(dic)

    运行结果:

    json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 3 column 5 (char 11)

     4、用load(相当于read),直接转字典

    import json
    
    with open('u', encoding='utf-8') as f:
        # content = f.read()
        # print(json.loads(content))  # 传json字符串再转,
        result = json.load(f)    # 用load(相当于read),直接转字典,json在文件里,直接传文件对象进来
        print(result)

    运行结果:

    {'key1': 1, 'k2': 'v2', 'k3': 'v3', 'name': '六六'}

    5、用dump把字典转成json串写文件里

    import json
    
    d = {"key1": "v1", 'k2': 'v2', 'k3': 'v3', 'name': '六六'}
    with open('u2', 'w', encoding='utf-8') as f:
        # json_str = json.dumps(d,indent=4,ensure_ascii=False)
        # f.write(json_str)
        json.dump(d, f, ensure_ascii=False, indent=4)  #用dump直接写,少些write

    运行结果:

    u2内容:
    {
        "key1": "v1",
        "k2": "v2",
        "k3": "v3",
        "name": "六六"
    }
  • 相关阅读:
    Apache HTTP Server 与 Tomcat 的三种连接方式介绍(转)
    Java实现二叉树遍历以及常用算法
    随想-经验
    Java代码检查工具
    MongoDB学习笔记-维护
    脏检查
    html5对密码加密
    JavaSript模块化-AMD规范与CMD规范
    AngularJS的$watch用法
    常用的几个小函数
  • 原文地址:https://www.cnblogs.com/ccxm/p/13498300.html
Copyright © 2011-2022 走看看