详细解读python操作json文件的详细

作者:哆啦A梦__- 时间:2021-01-31 10:41:42 

目录
  • json支持的格式:

    • 代码操作

      • 1.json转化为python

      • 2. python序列化为json

  • 总结

    json转化为python表示反序列化

    python转化为json表示为序列化

    json是python的内置模块,不需要安装

    json支持的格式:



    JsonPython
    对象(object)字典(dict)
    数组(array)列表(list)
    字符串(string)字符串(str)
    整数(int)整数(int)
    实数(float)实数(float)
    trueTrue
    falseFalse
    nullNone

    代码操作

    1.json转化为python

    json提供的两个函数支持json字符串反序列化为一个python对象

    json.loads(s)
    其中s表示字符串


    import json

    str_json = '{"name":"张三","age":24}'
    res = json.loads(str_json)
    print(res, type(res))  #{'name': '张三', 'age': 24} <class 'dict'>

    json.load(fb)
    fb:表示为文件对象test.json

    test.json


    {
     "name":"张三",
     "age":24,
     "friends": [{
       "name": "李四",
       "age": 23
     },
       {
         "name": "王麻子",
         "age": 24
       }],
     "hobby": ["玩游戏","看电影"]
    }

    import json

    with open('test.json', 'r', encoding='utf-8') as f:
       res = json.load(f)
       print(res, type(res))
     # {'name': '张三', 'age': 24, 'friends': [{'name': '李四', 'age': 23}, {'name': '王麻子', 'age': 24}], 'hobby': ['玩游戏', '看电影']} <class 'dict'>

    json字符串一般不会单独出现


    json.loads('"test"')  #'test'

    一般会放在字典或者列表中


    json.loads('["test1","test2","test3"]')  #['test1','test2','test3']

    2. python序列化为json

    json.dumps(obj,ensure_ascii=True,indent=None,sort_keys=False)

    • obj:表示为python 对象

    • ensure_ascii: 默认为 True,输出保证将所有输入的非 ASCII 字符转义。如果 ensure_ascii 是 False,这些字符会原样输出。

    • indent:一个非负整数或者字符串,JSON 数组元素和对象成员会被美化输出为该值指定的缩进等级。如果缩进等级为零、负数或者 “”,则只会添加换行符。None(默认值)选择最紧凑的表达。使用一个正整数会让每一层缩进同样数量的空格。如果 indent 是一个字符串(比如 "\t''),那个字符串会被用于缩进每一层。

    • sort_keys:为 True(more 为 False),表示字典的输出会以键的顺序排序。


    import json

    data = {
     "name":"张三",
     "age":24,
     "friends": [{
       "name": "李四",
       "age": 23
     },
       {
         "name": "王麻子",
         "age": 24
       }],
     "hobby": ["玩游戏","看电影"]
    }
    res = json.dumps(data,ensure_ascii=False,indent=2, )
    print(res, type(res))

    打印的结果为

    {
      "name": "张三",
      "age": 24,
      "friends": [
        {
          "name": "李四",
          "age": 23
        },
        {
          "name": "王麻子",
          "age": 24
        }
      ],
      "hobby": [
        "玩游戏",
        "看电影"
      ]
    } <class 'str'>

    json.dump(obj,fb,ensure_ascii=True,indent=None,sort_keys=False)

    • obj:表示为python对象

    • fb:表示为文本写打开的文件对象


    import json

    data = {
     "name":"张三",
     "age":24,
     "friends": [{
       "name": "李四",
       "age": 23
     },
       {
         "name": "王麻子",
         "age": 24
       }],
     "hobby": ["玩游戏","看电影"]
    }
    with open('test1.json', 'w', encoding='utf-8') as f:
       json.dump(data, fp=f, ensure_ascii=False, indent=2)

    写入的结果为

    test1.json


    {
     "name": "张三",
     "age": 24,
     "friends": [
       {
         "name": "李四",
         "age": 23
       },
       {
         "name": "王麻子",
         "age": 24
       }
     ],
     "hobby": [
       "玩游戏",
       "看电影"
     ]
    }

    总结

    本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

    来源:https://blog.csdn.net/qq_37846872/article/details/121756153

    标签:python,操作,json,文件
    0
    投稿

    猜你喜欢

  • 网页标准化-CSS命名规划整理

    2007-12-10 18:13:00
  • Python数据挖掘中常用的五种AutoEDA 工具总结

    2022-05-20 02:49:51
  • JavaScript在XHTML中的用法详解

    2024-04-17 10:11:04
  • [翻译]标记语言和样式手册 Chapter 11 打印样式

    2008-02-11 18:44:00
  • 详解python中的IO操作方法

    2023-08-29 22:16:16
  • Pycharm快捷键配置详细整理

    2021-06-25 05:46:17
  • Oracle数据表中的死锁情况解决方法

    2024-01-15 11:23:01
  • SpringSecurity页面授权与登录验证实现(内存取值与数据库取值)

    2024-01-22 20:17:54
  • 我的页面制作方法

    2008-03-23 13:51:00
  • python操作toml文件的示例代码

    2023-06-12 03:58:33
  • python开发之IDEL(Python GUI)的使用方法图文详解

    2023-09-15 23:22:42
  • python实现时间o(1)的最小栈的实例代码

    2021-08-01 15:24:42
  • 基于JS实现十种酷炫的网页特效

    2024-04-17 09:56:53
  • JS 实现计算器详解及实例代码(一)

    2024-04-17 10:08:57
  • 基于sqlserver的四种分页方式总结

    2024-01-13 22:34:33
  • 详解opencv去除背景算法的方法比较

    2022-10-08 08:48:08
  • 解决python使用list()时总是报错的问题

    2021-11-27 23:34:36
  • echarts学习之如何给饼图中间添加文字

    2024-05-03 11:10:30
  • asp dictionary对象使用介绍

    2008-05-30 13:51:00
  • Python EOL while scanning string literal问题解决方法

    2021-01-20 23:58:38
  • asp之家 网络编程 m.aspxhome.com