Python是怎样处理json模块的

 更新时间:2020年07月16日 09:48:55   作者:吃着东西不想停  
这篇文章主要介绍了Python是怎样处理json模块的,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下

首先,了解下什么是JSON?

JSON:JavaScript Object Notation 【JavaScript 对象表示法】

JSON 是一种轻量级的数据交换格式,完全独立于任何程序语言的文本格式。一般,后台应用程序将响应数据封装成JSON格式返回。

JSON的基本语法如下:JSON名称/值对。JSON 数据的书写格式是:名称/值对。名称/值对包括字段名称(在双引号中),然后着是一个冒号(:),最后是值。

JSON最常用的格式是对象的键值对:key只能是string, value可以是 object、array、string、number、true/false、null

{
"sites": [
{ "name":"360" , "url":"www.360.com" }, 
{ "name":"google" , "url":"www.google.com" }, 
{ "name":"baidu" , "url":"www.baidu.com" }
]
}
  • 键通过双引号包裹,后面跟冒号“:”,然后跟该键的值;
  • 值可以是字符串、数字、数组等数据类型;
  • 对象与对象之间用逗号隔开;
  • “{}”用来保存对象;
  • “[]”用来保存数组;

json跟python中的字典看起来很像,两者之间的区别?

1)json的key只能是字符串,dict的key可以是任何可hash的对象,例如:字符串、数字、元组等;

2)字典是一种数据结构,json是一种数据格式;字典有很多内置函数,有多种调用方法,而json是数据打包的一种格式,并不像字典具备操作性;

3)json的字符串强制用双引号,dict的字符串可以用单引号、双引号;

一般而言,我们会把json转化为python中的字典或者列表,再对其进行操作。

Python处理json的模块:json

Pythone3的标准库JSON模块,可以很方便的帮我们进行json数据的转换和处理,这里主要指序列化(json.dumps()、json.dump())和反序列化(json.loads()、json.load())。

序列化和反序列化:

将对象转换为可通过网络传输或可以存储到本地磁盘的数据格式(如:XML、JSON或特定格式的字节串)的过程称为序列化;反之,则称为反序列化。

常用的JSON模块方法:

  • json.dumps():将Python中的对象转换为JSON中的字符串对象
  • json.dump():将python对象转换成JSON字符串输出到fp流中。
  • json.loads():将JSON中的字符串对象转换为Python中的对象
  • json.load():读取包含json对象的文件。

带s的都是和字符串相关的,不带s的都是和文件相关的。

实例:

把字典转换成json串

import json
dic = {'name': 'xiaoming', 'age': 29}
json_str = json.dumps(dic)#返回json字符串
print(json_str)
print(type(json_str))
输出:
{"name": "xiaoming", "age": 29}
<class 'str'>

Python解码JSON对象

import json
json_str ='{"id":"09", "name": "Nitin", "department":"Finance"}'
# Convert string to Python dict
dict = json.loads(json_str)
print(dict)
#转换成字典来后,要访问其中的值,可以使用字典的key来访问
print(dict['id'])
输出:
{'id': '09', 'name': 'Nitin', 'department': 'Finance'}
09

读取json文件

import json
with open('test1.json') as f:
  a = json.load(f)
print(a)
print(type(a))
输出:
{'sites': [{'name': '360', 'url': 'www.360.com'}, {'name': 'google', 'url': 'www.google.com'}, {'name': 'baidu', 'url': 'www.baidu.com'}]}
<class 'dict'>

写入json文件

import json
  dic ={
    "name" : "xiaoming",
    "age" : 20,
    "phonenumber" : "15555555555"
  }

  with open("test2.json", "w") as outfile:
    json.dump(dic, outfile)

  文件test.json {"name": "xiaoming", "age": 20, "phonenumber": "15555555555"}

Python类型转换JSON类型的对应关系

json类型转换到Python的类型对照表

以上就是Python是怎样处理json模块的的详细内容,更多关于Python处理json模块的资料请关注脚本之家其它相关文章!

相关文章

  • 一文教你如何在Python中忽略烦人的警告

    一文教你如何在Python中忽略烦人的警告

    当你用 Python 写代码时,有时候会看到一些“警告”信息,这些信息不会让代码出错,但会让输出看起来很乱,所以本文为大家整理了一些忽略警告的方法,希望对大家有所帮助
    2024-12-12
  • Python常见库matplotlib学习笔记之画图文字的中文显示

    Python常见库matplotlib学习笔记之画图文字的中文显示

    在Python中使用matplotlib或者plotnine模块绘图时,常常出现图表中无法正常显示中文的问题,下面这篇文章主要给大家介绍了关于Python常见库matplotlib学习笔记之画图文字的中文显示的相关资料,需要的朋友可以参考下
    2023-05-05
  • Python判断Abundant Number的方法

    Python判断Abundant Number的方法

    这篇文章主要介绍了Python判断Abundant Number的方法,实例分析了Python针对盈数的判断技巧,需要的朋友可以参考下
    2015-06-06
  • python网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)

    python网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)

    UDP,用户数据报传输协议,它位于TCP/IP协议的传输层,是一种无连接的协议,它发送的报文不能确定是否完整地到达了另外一端
    2014-04-04
  • Python使用scipy进行曲线拟合的方法实例

    Python使用scipy进行曲线拟合的方法实例

    这篇文章主要给大家介绍了关于Python使用scipy进行曲线拟合的相关资料,Scipy优化和拟合采用的是optimize模块,该模块提供了函数最小值(标量或多维)、曲线拟合和寻找等式的根的有用算法,需要的朋友可以参考下
    2022-05-05
  • python numpy库之如何使用matpotlib库绘图

    python numpy库之如何使用matpotlib库绘图

    Numpy的主要对象是同构多维数组,它是一个元素表,所有类型都相同,由非负整数元组索引,在Numpy维度中称为轴,这篇文章主要介绍了python numpy库 使用matpotlib库绘图,需要的朋友可以参考下
    2022-10-10
  • python ffmpeg任意提取视频帧的方法

    python ffmpeg任意提取视频帧的方法

    这篇文章主要介绍了python ffmpeg任意提取视频帧的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • python如果快速判断数字奇数偶数

    python如果快速判断数字奇数偶数

    这篇文章主要介绍了python如果快速判断数字奇数偶数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • 利用python判断字母大小写的几种方法小结

    利用python判断字母大小写的几种方法小结

    在开发过程中有时候我们需要判断一个字符串是否是小写形式,下面这篇文章主要给大家介绍了关于利用python判断字母大小写的几种方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • Python3 webservice接口测试代码详解

    Python3 webservice接口测试代码详解

    这篇文章主要介绍了Python3 webservice接口测试代码详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06

最新评论