问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

python中为什么用json有什么作用

发布网友 发布时间:2022-04-19 15:06

我来回答

4个回答

懂视网 时间:2022-04-28 08:37

【相关学习推荐:python视频】

JSON介绍

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 这些特性使JSON成为理想的数据交换语言。

JSON的两种结构

  1. “名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。

  2. 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。

JSON在Python中的使用

在Python中操作JSON时需要引入json标准库。

import json

类型转换

Python类型转JSON:

json.dump()

#1.Python的dict类型转JSON
person_dict = {‘name’: ‘pig’, ‘age’: 18, ‘sex’: ‘man’, ‘hometown’: ‘江西抚州’}

indent参数为缩进空格数

person_dict_json = json.dumps(person_dict, indent=4)print(person_dict_json, ‘ ’)

2.Python的列表类型转JSON

person_list = [‘pig’, 18, ‘man’, ‘江西抚州’]person_list_json = json.dumps(person_list)print(person_list_json, ‘ ’)

3、Python的对象类型转JSON

person_obj = Person(‘pig’, 18, ‘man’, ‘江西抚州’)

中间的匿名函数是获得对象所有属性的字典形式

person_obj_json = json.dumps(person_obj, default=lambda obj: obj.dict, indent=4)print(person_obj_json, ‘ ’)

JSON转Python类型:

json.loads()

4、JSON转Python的dict类型

person_json = ‘{ “name”: “pig”,”age”: 18, “sex”: “man”, “hometown”: “江西抚州”}’
person_json_dict = json.loads(person_json)print(type(person_json_dict), ‘ ’)

5、JSON转Python的列表类型

person_json2 = ‘[“pig”, 18, “man”, “江西抚州”]’
person_json_list = json.loads(person_json2)print(type(person_json_list), ‘ ’)

6、JSON转Python的自定义对象类型

person_json = ‘{ “name”: “pig”,”age”: 18, “sex”: “man”, “hometown”: “江西抚州”}’

object_hook参数是将dict对象转成自定义对象

person_json_obj = json.loads(person_json, object_hook=lambda d: Person(d[‘name’], d[‘age’], d[‘sex’], d[‘hometown’]))print(type(person_json_obj), ‘ ’)

Python和JSON数据类型对应表


JSONPython
objectdict
arraylist
stringstr
numberint,long,float
true,falseTrue,False
nullNone

需要注意的点

JSON的键名和字符串都必须使用双引号引起来,而Python中单引号也可以表示为字符串,所以这是个比较容易犯的错误!

Python类型与JSON相互转换的时候到底是用load/dump还是用loadsdumps?

不加s的方法入参多了一个fp表示filepath,最后多了一个写入文件的操作。

所以我们在记忆的时候可以这样记忆:

加s表示转成字符串(str),不加s表示转成文件。

热心网友 时间:2022-04-28 05:45

今天我也在这个问题上纠结很久。最后才想明白,我来回答下。

网上很多网友总结了json模块的用法,但没说json模块有什么用,干嘛要有这个模块。可能都明白、太简单,觉得没必要说。但作为小白的我不明白,而且在练习使用load()和mp()时遇到错误。

首先纠正,json格式不是字符串。json与python里面的字典是一样的格式。

python的json模块四个方法的作用为:

mps() # 把数据转成字符串;
loads() # 把字符串符号‘’去掉;
mp(x, f) # 将x的内容直接写入f,不改变格式;
load(x, f) # 读取f保存为x,同样不改变格式。

重点来了,f = open()下的read()的方法,输出是字符串,wirte()方法的输入也必须是字符串。

结论:因为f=open()下的读写方法都必须是字符串,很不方便。而非字符串的数据大多是json格式,所以就有了json模块。方便读写非字符串的数据。

因为这个目的,json模块的loads()和mps()方法有些鸡肋,还造成困扰,因为明明json不是字符串,干嘛要转成字符串,另外mp()和load()方法表面上和它们不一样。只有明白json模块的目的,才会搞明白。

在python 3.6的说明文档中,把json模块放在了《7.2.文件读写》部分。我也是看到这里才去练习json模块。但出问题,有些糊涂,明白json模块的作用后,才更清楚干嘛把json模块放这里。

小白的浅见,若错误请指教,谢谢。

热心网友 时间:2022-04-28 07:03

json是以一种良好的格式来进行数据的交互,从而在很多时候,可以使用json数据格式作为程序之间的接口,

热心网友 时间:2022-04-28 08:38

不是python用json,json是类似xml的一种通用格式,在很多地方都可以用。
json相比xml,数据量更小,而且可以很方便的和解释型语言的结构相互转换。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果手机微信怎么换漂亮字体(苹果手机微信怎么换行输入) 有什么好用的app转换字体 手写转文字的软件 erp可以看评论地址吗 淘宝评论url是什么意思? 揭秘:码牌支付风控升级,背后真相揭秘 电脑电视直播软件哪个好用什么软件好电脑看电视直播 潼南子同街学区是哪些 三极管BU406价格和参数? 火锅料放在冰柜忘了插电一个星期给会坏了吗 火锅的设备有哪些 入的笔顺笔画顺序 python json库的用法疑问 劳烦大神解答,谢谢 入的笔顺 “入”的笔顺是什么 笔记本电脑怎么能连接打印机 笔记本怎么连接打印机啊 不用数据线的? 笔记本电脑怎么连上打印机 笔记本怎么连上打印机 手提电脑怎样连接打印机 华为mate30p是双卡双待怎么设置 重男轻女的家庭是什么样的? 为什么从古至今中国都重男轻女? 重男轻女现象,真的很普遍吗? 重男轻女思想的起源 关于重男轻女的原因 父母涉及到金钱的时候又重男轻女,到了女儿出嫁的时... 重男轻女的说法对不对呢? 社会如何看待“重男轻女”的现象 你认为导致人们重男轻女的根本原因是什么? 如何看待重男轻女这一现象? 入字的组词有哪些 如何用python处理json文件 入的笔顺怎么写 python json模块怎么用 入的部首是 Python怎么读写json格式文件 入的拼音是什么? python json格式问题 入可以组什么词语 如何使用python提取json中指定字段的数据 入组什么词? 如何用Python,查找json格式中指定的数据,然后输... 入字拼音怎么打? 如何用Python解析Json文件 入字的意思是什么 python json怎么修改json数据 入口的入怎么写 入的部首是什么 入字组词语有哪些 入可以组什么词