python 怎么处理json_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的都是和文件相关的。

653648697cf1c84078991b3c3569468d.png

实例:

把字典转换成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}

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'}]}

写入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"}

7c5b78475558d855ad5bff970889d8ba.png

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

a2994e8709ff3e06fb080d54d280eb42.png

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

752ab2f09bb4fce2ab4d1ff0bc3ff84d.png

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

本文标题: Python是怎样处理json模块的

本文地址: http://www.cppcns.com/jiaoben/python/325344.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/433414.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UEditor1.2.6.0在.net环境下使用

UEditor1.2.6.0 1.百度百科词条 2.UEditor官方网站 【CKEditorCKFinder的配置实用,可查看博主另一篇文章】 第一次接触UEditor还是在2011年的下半年里,当时由于需要找一款富文本编辑器进行新闻的网站开发,当时UEditor异常较多,就将…

sql 删除数据_从零开始学SQL:是什么、如何安装、基本语法、表格(创建、删除、更新)、数据(插入、删除、更新)...

一、学习知识的黄金圈思维用黄金圈思维分析自己学习SQL,能增加自己的效率和坚持下去的动力。二、SQL基础知识1.数据库概念: database ,按照数据结构来组织、存储和管理数据的仓库。2.关系数据库:多张表表之间的关系表:…

函数使用了堆栈的字节超过_在C语言中如何访问堆栈?

堆栈一般是用来保存变量之类的东西(静态变量在内存中,虽然堆栈就是内存的一部分,但为了防止歧义,还是分成两部分来说),一般情况下没必要去故意读取堆栈的值,变量用变量名就可以直接访问&#xf…

怎么解决相位抵消_【录音教程】如何防止话筒拾音的声学相位抵消

设想一下你以单声道的模式为一个吉他歌手做扩声,一支人 声听起来比较古怪,有点“空”,同时有滤波器之类的效果声。为什么会这样?主唱话筒拾取歌手的演唱,同时拾取箱琴的话筒也串入了歌手的声音(见图1)。吉 他话筒离主唱…

string 找出所有数字 index_发现规律,解决整数转罗马数字

嗨,各位!我们又准时见面了,即将迎来难得的周末时光,我们今天来一道相对简单的题目逻辑梳理的题目,原定的动态规划的常见题型我们放在周末进行更新。话不多说,我们先看题目: 01 . 题目罗马数字包…

ASP.NET MVC的路由

好久没写博文了,感觉最近好像少了点动力。唉!这回就看看这个MVC的路由。 说这个路由机制其实不是MVC里面特有的,ASP.NET里面本身就有的,只不过在WebForm里面一般比较少用,而在MVC里就是把原本的路由扩展了。原本对不知…

java情书_Java情书已写好,就差妹子了!

我是Java程序员我用我的方式表达对你的爱!我能抽象出整个世界...但是我却不能抽象出你...你肯定是一个单例,因为你是那样的独一无二...所以我的世界并不完整...我可以重载甚至覆盖这个世界里的任何一种方法...但是却不能覆盖对你的思念...也许命中注定了…

windows下手动配置ipv6地址

在XP,2003等早期版本中,ipv6地址在“网络连接”的属性配置里是无法手工配置的,只能使用netsh配置。配置方法如下:首先,安装IPV6协议,ipv6 install 第二步,查看当前使用的本地连接信息: 如上图&a…

java 幽灵引用_Java 幽灵引用的作用

原标题:Java 幽灵引用的作用来源:imzoer,blog.csdn.net/imzoer/article/details/8044900找实习的时候,面试大摩,就遇到了这个问题,当时真不该跟面试官交流这个内容的。垃圾收集过程中,对象的可触…

java assembly 打包_maven 使用assembly 进行打包的方法

1. pom 中添加assembly 插件要使用assembly 进项编译打包, 首先主要在pom 中的build中添加插件信息, 具体如图下所示:${project.artifactId}src/main/javasrc/main/resourcestrue**/*.xml**/*.properties${profile.dir}trueorg.apache.maven.…

rt5350 中断初始化

linux 下的中断初始化,实际就是对 irq_desc 这个结构体进行初始化,其中最关键莫过于 irq_flow_handler_t handle_irq 中断处理函数 struct irqaction *action 用户自己设置的处理函数链表,由hand…

VS2010安装异常中断后无法安装的解决方法(安装时发生严重错误)

最近,因为公司开发的需要,对开发环境进行全面的升级,在这其中也遇到了不少问题,在之后将陆续整理出来,以便以后查看。 之前开发环境:ArcGIS9.3,ArcEngine9.3,Oracle10g,A…

将5350 i2c clk设置为gpio 中断模式的方法

5350和我之前用的三星和全志的芯片在中断这块有点差别,三星和全志的都是有专门的外部中断管脚,并且每个中断管脚对应一个中断号,对管脚寄存器的配置即irq_desc里chip变量,都是bsp里自带的,我们只需要用request_irq来注…

代码大全 MSIL语言程序设计

.NET平台的编译器会将高级语言(C#,VB.NET,F#)编译成MSIL(微软中间语言)格式。熟悉MSIL语言,可以读懂一些加密程序混淆过的算法,这些算法几乎不能还原成高级语言,但是可以还原成MSIL语言。也可以知道一些高级语言之外的关于CLR的特性&#xff…

以太网交换机

以太网交换机是基于以太网传输数据的交换机,以太网采用共享总线型传输媒体方式的局域网。以太网交换机的结构是每个端口都直接与主机相连,并且一般都工作在全双工方式。交换机能同时连通许多对端口,使每一对相互通信的主机都能像独占通信媒体…

待办事项桌面插件_让浏览器重获整洁——标签页管理插件:OneTabOneTab PlusToby...

1 什么是标签页管理插件chrome浏览器虽然为用户提供了一个非常方便的打开新标签页的方法,但是随着用户浏览网页的时间增长,用户在一个chrome窗口中打开的标签页会越来越多,当这些标签页过多的时候,用户在标签页之间进行切换就会变…

关机时无人照管更新正在运行_了解iOS13.1后,在决定更新

苹果提前发布了首个重要更新的iOS 13.1,补充了多个 iOS 13 首发时缺失的重要新功能,可以说 iOS 13.1 才是【真正】的 iOS 13 系统。苹果发布iOS13.1,都更新了哪些内容?iOS13.1修复问题和改进问题:?信息中拟我表情可能无法正确跟踪…

山西计算机网络技术专升本分数线_2020山西成考专升本招生补录第一批公告!附补录院校专业缺额表!...

☞回复【成绩】查询2020年成人高考成绩☞回复【录取】查询20成考录取结果☞回复【补录】查询最新院校缺额信息☞加入学历备考交流群 550985358 专升本第一阶段补录通知与院校缺额信息 达线未被录取?还有机会2020山西成考专升本招生征集志愿第一阶段公告发布12月9日1…

网页编码就是那点事

编码一直是让新手头疼的问题,特别是 GBK、GB2312、UTF-8 这三个比较常见的网页编码的区别,更是让许多新手晕头转向,怎么解释也解释不清楚。但是编码又是那么重要,特别在网页这一块。如果你打出来的不是乱码,而网页中出…

Linux C 中字符串化操作符#

1 #include <stdio.h>2 3 #define dprint( expr ) printf( "%s %d \n", #expr , expr)4 5 int main(void)6 {7 int x 100;8 int y 2;9 10 dprint(x/y); 11 dprint( xy ); 12 dprint( xy2 ); 13 return 0; 14 } 打印信息&…