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'>
  • 相关阅读:
    hdu 6702 ^&^ 位运算
    hdu 6709 Fishing Master 贪心
    hdu 6704 K-th occurrence 二分 ST表 后缀数组 主席树
    hdu 1423 Greatest Common Increasing Subsequence 最长公共上升子序列 LCIS
    hdu 5909 Tree Cutting FWT
    luogu P1588 丢失的牛 宽搜
    luogu P1003 铺地毯
    luogu P1104 生日
    luogu P1094 纪念品分组
    luogu P1093 奖学金
  • 原文地址:https://www.cnblogs.com/piwefei/p/11195056.html
Copyright © 2011-2022 走看看