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

 更新时间:2021年12月07日 14:45:01   作者:哆啦A梦__-  
这篇文章主要为大家介绍了python操作json文件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助

json转化为python表示反序列化

python转化为json表示为序列化

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

json支持的格式:

Json Python
对象(object) 字典(dict)
数组(array) 列表(list)
字符串(string) 字符串(str)
整数(int) 整数(int)
实数(float) 实数(float)
true True
false False
null None

代码操作

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": [
    "玩游戏",
    "看电影"
  ]
}

总结

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

相关文章

  • pycharm部署、配置anaconda环境的教程

    pycharm部署、配置anaconda环境的教程

    PyCharm是一款很好用很流行的python编辑器。Anaconda是专注于数据分析的Python发行版本,包含了conda、Python等190多个科学包及其依赖项,这篇文章主要介绍了pycharm部署、配置anaconda环境的教程,需要的朋友可以参考下
    2020-03-03
  • Python第三方库xlrd/xlwt的安装与读写Excel表格

    Python第三方库xlrd/xlwt的安装与读写Excel表格

    最近开始学习python,想做做简单的自动化测试,需要读写excel,于是就接触到了Python的第三方库xlrd和xlwt,下面这篇文章就给大家主要介绍了Python中第三方库xlrd/xlwt的安装与读写Excel表格的方法,需要的朋友可以参考借鉴。
    2017-01-01
  • 查找python项目依赖并生成requirements.txt的方法

    查找python项目依赖并生成requirements.txt的方法

    今天小编就为大家分享一篇查找python项目依赖并生成requirements.txt的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • python教程命名元组示例分析

    python教程命名元组示例分析

    这篇文章是python教程篇,主要为大家介绍了Python中命名元组的示例分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-09-09
  • 浅谈python中的面向对象和类的基本语法

    浅谈python中的面向对象和类的基本语法

    下面小编就为大家带来一篇浅谈python中的面向对象和类的基本语法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • Python复制文件的9个方法小结

    Python复制文件的9个方法小结

    本文主要介绍了Python复制文件的9个方法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-01-01
  • Python数据可视化 pyecharts实现各种统计图表过程详解

    Python数据可视化 pyecharts实现各种统计图表过程详解

    这篇文章主要介绍了Python数据可视化 pyecharts实现各种统计图表过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • Pygame游戏开发之太空射击实战子弹与碰撞处理篇

    Pygame游戏开发之太空射击实战子弹与碰撞处理篇

    相信大多数8090后都玩过太空射击游戏,在过去游戏不多的年代太空射击自然属于经典好玩的一款了,今天我们来自己动手实现它,在编写学习中回顾过往展望未来,下面开始讲解子弹与碰撞处理,在本课中,我们将添加玩家与敌人之间的碰撞,以及添加供玩家射击的子弹
    2022-08-08
  • 基于python 爬虫爬到含空格的url的处理方法

    基于python 爬虫爬到含空格的url的处理方法

    今天小编就为大家分享一篇基于python 爬虫爬到含空格的url的处理方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • 利用python爬取有道词典的方法

    利用python爬取有道词典的方法

    这篇文章主要介绍了python爬取有道词典的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12

最新评论