zoukankan      html  css  js  c++  java
  • python:Json模块dumps、loads、dump、load介绍

     

     

     转载请注明出处:https://www.cnblogs.com/shapeL/p/9037670.html

    由上篇文章(python3+requests:get/post请求)涉及到的json.dumps()扩展

    1.json.dumps()用于将dict类型的数据转成str

    备注:文件路径前面加上 r 是为了避免转义

    复制代码

    import json

    dict = {'a': 'wo', 'b': 'zai', 'c': 'zhe', 'd': 'li'}
    string = json.dumps(dict)
    print(dict)
    print(string)
    print(type(dict))
    print(type(string))

    with open(r'C:UserszyDocumentsGitHubpython3searchTestjson.json','w')as f:
    f.write(string)

    复制代码
     
    1 {'a': 'wo', 'b': 'zai', 'c': 'zhe', 'd': 'li'}
    2 {"a": "wo", "b": "zai", "c": "zhe", "d": "li"}
    3 <class 'dict'>
    4 <class 'str'>

    如果没有进行转换,则会报错:TypeError: write() argument must be str, not dict

     
    1 import json
    2 
    3 dict = {'a': 'wo', 'b': 'zai', 'c': 'zhe', 'd': 'li'}
    4 with open(r'C:UserszyDocumentsGitHubpython3searchTestjson.json','w')as f:
    5     f.write(dict)
    复制代码

    {'a': 'wo', 'b': 'zai', 'c': 'zhe', 'd': 'li'}
    Traceback (most recent call last):
    <class 'dict'>
    File "C:/Users/zy/Documents/GitHub/python3/searchTest/json_test.py", line 11, in <module>
    f.write(dict)
    TypeError: write() argument must be str, not dict

    复制代码

     json.dumps()参数解释:常用参数解释

    indent:应该是一个非负的整型,如果是0,或者为空,则一行显示数据;否则会换行且按照indent的数量显示前面的空白

    sort_keys:将数据根据keys的值进行排序

     
    1 response = requests.post(url=url,headers=headers).json()
    2 print(json.dumps(response,sort_keys=True,indent=4))

    举例结果:

    复制代码

    {
    "code": "200",
    "message": "",
    "redirect": "",
    "value": {
    "name": "so",
    "title": "360",
    "value": "2"
    }
    }

    复制代码

    2.json.loads():用于将str类型的数据转成dict

    复制代码

    dict = {'a': 'wo', 'b': 'zai', 'c': 'zhe', 'd': 'li'}
    dumps = json.dumps(dict)
    loads = json.loads(dumps)

    print(dict)
    print(dumps)
    print(loads)

    print(type(dict))
    print(type(dumps))
    print(type(loads))

    复制代码
    复制代码

    {'a': 'wo', 'b': 'zai', 'c': 'zhe', 'd': 'li'}
    {"a": "wo", "b": "zai", "c": "zhe", "d": "li"}
    {'a': 'wo', 'b': 'zai', 'c': 'zhe', 'd': 'li'}
    <class 'dict'>
    <class 'str'>
    <class 'dict'>

    复制代码

    3.json.dump()用于将dict类型的数据转成str,并写入到json文件中

     
    1 dict = {'a': 'wo', 'b': 'zai', 'c': 'zhe', 'd': 'li'}
    2 json.dump(dict,open(r'C:UserszyDocumentsGitHubpython3searchTestjson.json','w'))

    4.json.load()用于从json文件中读取数据

     
    1 filename = (r'C:UserszyDocumentsGitHubpython3searchTestjson.json')
    2 jsObj = json.load(open(filename))
    3 print(jsObj)
    4 print(type(jsObj))
     
    1 {'a': 'wo', 'b': 'zai', 'c': 'zhe', 'd': 'li'}
    2 <class 'dict'>
  • 相关阅读:
    KVM虚拟机高级设置——09 设置KVM虚拟机开机自动启动
    KVM虚拟机高级设置——08 管理远程虚拟机
    搭建KVM环境——07 带GUI的Linux上安装KVM图形界面管理工具
    搭建KVM环境——06 创建虚拟机
    TightVNC安装
    数据库设计
    Free lunch is over
    【问题】使用XShell连接Debian,没有语法高亮
    【Intel 汇编】ELF文件
    【问题】No manual entry for pthread_create in section 3
  • 原文地址:https://www.cnblogs.com/piwefei/p/11195056.html
Copyright © 2011-2022 走看看