• python 处理 JSON


    json.laod 加载 json 文件

    使用load(file_stream):作用从文件流直接读取并转换为dict字典或dict字典链表

    # 加载配置,configuration_path:配置文件路径
    def load_conf(configuration_path):
        with open(configuration_path, 'r') as f:
            data = json.load(f)
        f.close()
        return data
    

    json.dump 写 json 文件

    使用dump():将可转为json对象的对象直接写入文件(将两个步骤结合成一个步骤)

    def save_conf(confiuration_path, pre_trans_obj):
        with open(confiuration_path,'w') as f:
            json.dump(pre_trans_obj, f, ensure_ascii=False)
            f.close()
    

    json.loads 将json字符串转成 json 对象

    dict1 = """{"name": "张三", "id": 123345, "address": "广东深圳"}"""
    
    dict1 = json.loads(dict1)
    print(dict1)
    print(type(dict1))
    

    输出结果:
    {'name': '张三', 'id': 123345, 'address': '广东深圳'}
    <class 'dict'>

    json.dumps 将 json 对象转成 json 字符串

    语法

    json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding="utf-8", default=None, sort_keys=False, **kw)
    

    json.dumps 简单例子

    dict1 = {"name": "张三", "id": 123345, "address": "广东深圳"}
    
    print(dic1t)
    print(type(dict1))
    
    jsonStr = json.dumps(dict1)
    print(jsonStr)
    

    输出结果:
    {'name': '张三', 'id': 123345, 'address': '广东深圳'}
    <class 'dict'>
    {"name": "\u5f20\u4e09", "id": 123345, "address": "\u5e7f\u4e1c\u6df1\u5733"}

    • json.dumps 会将中文字符转为unicode
    • 解决办法1:在json.loads()后解码成正常中文
    • 解决办法2:在 json.dumps 可以加入 ensure_ascii=False 这个参数解决
      jsonStr = json.dumps(dict1, ensure_ascii=False)

    json.dumps 格式化展示

    需求:将 json 数据格式化展示
    1、借助外部工具
    2、使用json.dumps转成字符串时格式化

    dict1 = {"name": "张三", "id": 123345, "address": "广东深圳"}
    
    jsonStr = json.dumps(dict1, sort_keys=True, indent=4, separators=(',', ': '))
    print(jsonStr)
    

    输出结果
    {
    "address": "\u5e7f\u4e1c\u6df1\u5733",
    "id": 123345,
    "name": "\u5f20\u4e09"
    }

    • 输出结果为编码后的数据,我们在 json.dumps 可以加入 ensure_ascii=False 这个参数解决
    dict1 = {"name": "张三", "id": 123345, "address": "广东深圳"}
    
    jsonStr = json.dumps(dict1, sort_keys=True, indent=4, separators=(',', ': '), ensure_ascii=False)
    print(jsonStr)
    

    此时的输出结果

    {
        "address": "广东深圳",
        "id": 123345,
        "name": "张三"
    }
    
    
  • 相关阅读:
    BEGINNING SHAREPOINT&#174; 2013 DEVELOPMENT 第15章节--开发SP2013工作流应用程序 总结
    OpenStreetMap初探(一)——了解OpenStreetMap
    企业服务总线架构介绍
    【Stackoverflow好问题】java在,如何推断阵列Array是否包括指定的值
    C和指针 (pointers on C)——第一章:高速启动
    类别sort使用排序
    [Oracle]
    4点,从今天谈用户体验设计经验京东亚马逊购物
    从[java.lang.OutOfMemoryError: Java heap space]恢复
    C++学习笔记32 断言函数
  • 原文地址:https://www.cnblogs.com/DeryKong/p/16271957.html
Copyright © 2020-2023  润新知