json数据简介

json数据是一个轻量级的数据交换格式,采用完全独立于语言的文本格式,这些特性使json称为理想的数据交换语言,易于人阅读和编写,同时易于机器解析和生成。

json中的字符集必须是UTF-8,json中的字符串必须用双引号引起来。几乎所有语言都内置了解析json的库,JavaScript语言可以直接使用json。

json格式一般是“键值对”的格式,比如

键值对:{“firstName”:”Breet”,”lastName”:”MMM”,”email”:”XXX”}

再比如:

{

“programers”:[

{“firstName”:”Breet”,”lastName”:”MMM”,”email”:”XXX”},

{“firstName”:”Breet”,”lastName”:”MMM”,”email”:”XXX”}

],

“authors”:[

{“firstName”:”Breet”,”lastName”:”MMM”,”email”:”XXX”},

{“firstName”:”Breet”,”lastName”:”MMM”,”email”:”XXX”}

],

}

json的应用场景:web服务端的go数组->json字符串->网络传输->json字符串->反序列化->go数组->信息呈现给用户。

Python中解析json的库

import json
# 字典类型转换为json字符串
data = {"id": 1, 'name': 'sy', 'passwrd': ''} print(type(data))
json_str = json.dumps(data)
print(type(json_str))
print(json_str) print("*" * 20) # json字符串转换为字典类型
json_str2 = '{"programers":[ {"firstName":"Breet","lastName":"MMM","email":"XXX"},'\
'{"firstName":"Breet","lastName":"MMM","email":"XXX"}], ' \
'"author": [{"firstName": "su", "lastName": "yang", "email": "XXX"},'\
'{"firstName": "Breet", "lastName": "MMM", "email": "XXX"}]}' print(type(json_str2)) data2 = json.loads(json_str2) print(type(data2))
print(json_str2)
print(data2) print('*' * 20) # 将json数据写入文件,用文件传送 with open('aaa.json', 'w') as f:
json.dump(data, f) with open('aaa.json', 'r') as f:
data3 = json.load(f)
print(type(data3))
print(data3)

运行结果:

<class 'dict'>

<class 'str'>

{"id": 1, "name": "sy", "passwrd": "123123"}

********************

<class 'str'>

<class 'dict'>

{"programers":[ {"firstName":"Breet","lastName":"MMM","email":"XXX"},{"firstName":"Breet","lastName":"MMM","email":"XXX"}], "author": [{"firstName": "su", "lastName": "yang", "email": "XXX"},{"firstName": "Breet", "lastName": "MMM", "email": "XXX"}]}

{'programers': [{'email': 'XXX', 'lastName': 'MMM', 'firstName': 'Breet'}, {'email': 'XXX', 'lastName': 'MMM', 'firstName': 'Breet'}], 'author': [{'email': 'XXX', 'lastName': 'yang', 'firstName': 'su'}, {'email': 'XXX', 'lastName': 'MMM', 'firstName': 'Breet'}]}

********************

<class 'dict'>

{'id': 1, 'name': 'sy', 'passwrd': '123123'}

Python解析json字符串,json字符串用法的更多相关文章

  1. Python解析非标准JSON(Key值非字符串)

    采集数据的时候经常碰到一些JSON数据的Key值不是字符串,这些数据在JavaScript的上下文中是可以解析的,但在Python中,没有该部分数据的上下文,无法采用json.loads(JSON)的 ...

  2. Python解析xml与JSON

    xml与json是常用的文件交换格式,常用来表示网页的html则是xml的变种.解析xml和json在web开发中有着重要应用. DOM解析XML 文件对象模型(Document Object Mod ...

  3. 使用Python解析豆瓣上Json格式数据

    现在的API接口多为xml或json,json解析更简洁相对xml来说 以豆瓣的API接口为例,解析返回的json数据: https://api.douban.com/v2/book/1220562 ...

  4. python解析页面上json字段

    一般来说,当我们从一个网页上拿下来数据,就是一个字符串,比如: url_data = urllib2.urlopen(url).readline() 当我们这样得到页面数据,url_data是全部页面 ...

  5. android实现json数据的解析和把数据转换成json格式的字符串

    利用android sdk里面的 JSONObject和JSONArray把集合或者普通数据,转换成json格式的字符串 JSONObject和JSONArray解析json格式的字符串为集合或者一般 ...

  6. SQL server 存储过程 C#调用Windows CMD命令并返回输出结果 Mysql删除重复数据保留最小的id C# 取字符串中间文本 取字符串左边 取字符串右边 C# JSON格式数据高级用法

    create proc insertLog@Title nvarchar(50),@Contents nvarchar(max),@UserId int,@CreateTime datetimeasi ...

  7. python字典转化成json格式。JSONEncoder和JSONDecoder两个类来实现Json字符串和dict类型数据的互相转换

    遇到问题:进行Webservice接口测试时,对接口入参数据进行了处理,变成了dict格式,去进行接口请求报错. 需要转成成json格式,双引号去扩. 如下: 更改代码: # 在Python标准库的j ...

  8. AJAX html 传输json字符串&&巧妙运用eval()来解析返回的JSON字符串

    1.AJAX html 传输json字符串: js方法如下: function saveRetYwlsh(){ var xmbh = document.getElementById("xmb ...

  9. 【Java_Spring】java解析多层嵌套json字符串

    java解析多层嵌套json字符串    

随机推荐

  1. P1014 高精度减法

    题目描述 给你两个很大的正整数A和B,你需要计算他们的差. 输入格式 输入一行包含两个正整数A和B,以一个空格分隔(A和B的位数都不超过 \(10^5\) ,但是B有可能比A大) 输出格式 输出一行包 ...

  2. dotnet 通过 WMI 获取系统安装软件

    本文告诉大家如何通过 WMI 获取系统安装的软件,这个方法不能获取全部的软件 通过 Win32_Product 可以获取系统安装的软件 var mc = "Win32_Product&quo ...

  3. Linux 内核/sbin/hotplug 工具

    如同本章中前面提过的, 无论何时一个设备从系统中增删, 都产生一个"热插拔事件". 这 意味着内核调用用户空间程序 /sbin/hotplug. 这个程序典型地是一个非常小的 ba ...

  4. url查找参数

    function GetUrlParam(paraName) { var url = document.location.toString(); var arrObj = url.split(&quo ...

  5. Linux 内核总线方法

    有几个给 bus_type 结构定义的方法; 它们允许总线代码作为一个设备核心和单独驱动之 间的中介. 在 2.6.10 内核中定义的方法是: int (*match)(struct device * ...

  6. 关于axios的一些封装

    关于Axios的封装 为何需要在封装 应用场景,项目中涉及100个AJAX请求,其中: 1.其中60个需要在请求头header设置token headers: {token: token}用于权限校验 ...

  7. codeforces 600E E. Lomsat gelral (线段树合并)

    codeforces 600E E. Lomsat gelral 传送门:https://codeforces.com/contest/600/problem/E 题意: 给你一颗n个节点的树,树上的 ...

  8. springboot 动态修改定时任务

    1.静态定时 1)启动类加上注解@EnableScheduling @EnableAsync @EnableScheduling @SpringBootApplication @MapperScan( ...

  9. 解决css布局时两个div一个宽度固定另一个占满剩余宽度的问题

    /*左侧div*/ .left-div{width: 220px;height: 100%;position: fixed;background: #FFFFFF;} /*右侧div*/ .right ...

  10. 在Linux CentOS下如何安装tar.gz和RPM软件包

    1.安装tar.gz软件包: 在Linuxr(Centos下)如何安装tar.gz软件包,该方式实质上就是源代码安装方式,具体如下: 在Linux中使用wget命令下载要安装的文件,命令格式如下:wg ...