博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python知识点记录四(JSON)
阅读量:7085 次
发布时间:2019-06-28

本文共 2020 字,大约阅读时间需要 6 分钟。

JSON: JavaScript Object Notation(JavaScript对象标记)

其本质为“一种轻量级的数据交换格式”。JSON字符串就是JSON的表现形式(载体)。

符合JSON格式的字符串叫做JSON字符串。

JSON的优点(较之XML):易于阅读、易于解析、网络传输效率高。非常适合作为跨语言交换数据。

对于Python来说,其接收到的JSON格式的字符串的内涵有多种形式,比如“字典”、“字典作为元素的列表”,尽管其表现出来总是以字符串的形式。

比如:

#JSON object的字符串形式json_str = '{"name": "qiyue", "age": 18}'#JSON array的字符串形式json_str0 = '[{"name": "qiyue", "age": 18, "flag":false}, {"name": "bayue", "age": 19}]'

这里需要注意JSON格式中内部必须用双引号表示字符串。

一、JSON在Python中的反序列化

如果Python中接收到了JSON信息,其内部提供了json模块,可以通过json.loads()方法将这个信息字符串“反序列化”为Python语言中的对应格式变量。

 

import json#JSON object的字符串形式json_str = '{"name": "qiyue", "age": 18}'student = json.loads(json_str)print(type(student))print(student)#输出:'''
{'name': 'qiyue', 'age': 18}'''
import json#JSON array的字符串形式json_str0 = '[{"name": "qiyue", "age": 18, "flag":false}, {"name": "bayue", "age": 19}]'student0 = json.loads(json_str0)print(type(student0))print(student0)print(student0[0]['name'])print(student0[1]['age'])#输出:'''
[{'name': 'qiyue', 'age': 18, 'flag': False}, {'name': 'bayue', 'age': 19}]qiyue19'''

二、Python至JSON格式的序列化

序列化即是把Python中的数据转换为JSON格式的数据,通过json模块中的dumps()方法。

import jsona0 = 10a1 = 3.1415926a2 = 'Hello'a3 = [1,3,5,7,9]a4 = ('x', 'y', 'z')a5 = {1: 11, 2: 22, 3:33}s0 = json.dumps(a0)s1 = json.dumps(a1)s2 = json.dumps(a2)s3 = json.dumps(a3)s4 = json.dumps(a4)s5 = json.dumps(a5)print(s0)print(s1)print(s2)print(s3)print(s4)print(s5)'''输出:103.1415926"Hello"[1, 3, 5, 7, 9]["x", "y", "z"]{"1": 11, "2": 22, "3": 33}'''
import jsonstudent = [           {
'name': 'qiyue', 'age': 18, 'flag': False}, {
'name': 'bayue', 'age': 19} ]json_str = json.dumps(student)print(type(json_str))print(json_str)'''输出:
[{"name": "qiyue", "age": 18, "flag": false}, {"name": "bayue", "age": 19}]'''

三、JSON、JSON对象与JSON字符串

JSON只是一种用于数据传输、交换的数据标准格式,是对ECMASCRIPT标准的某一方面的实现。

JSON对象只成立于JavaScript语言中,对于其他语言如Python来说并不存在JSON对象这种说法,因为对Python而言,只有JSON字符串与之交互(序列化及反序列化)。)

 

转载于:https://www.cnblogs.com/tsembrace/p/9033584.html

你可能感兴趣的文章
《深度学习:Java语言实现》一一第2章 机器学习算法——为深度学习做准备
查看>>
坚持做创业护卫队的770天
查看>>
《ANSYS Workbench 14有限元分析自学手册》——导读
查看>>
OC之构造方法
查看>>
AppleWatch开发入门二——界面布局
查看>>
6个你必须用到AJAX的地方与6个不必用到的地方
查看>>
OpenExpressApp 框架结构(2)
查看>>
[总结]无线测试
查看>>
⑫云上场景:筋斗云,基于分布式云服务器的深度挖掘
查看>>
Waiting Auto-INC LOCK导致死锁
查看>>
wake-up signal SIGALRM from alarm() or setitimer(). SIG_DFL & SIG_IGN
查看>>
HTTP/2 对 Web 性能的影响(上)
查看>>
react更新state的时候要返回一个全新的引用或者值
查看>>
flex实战
查看>>
Android 高仿腾讯新闻视频切换效果
查看>>
只有程序员才能看懂的15个瞬间
查看>>
Mybatis入门学习---使用注解开发
查看>>
影响网站关键词排名的因素
查看>>
我的友情链接
查看>>
read和变量设定方式
查看>>