浅谈Python3 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 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端程序。这个字符串看起来有点儿古怪,但是 JavaScript 很容易解释它,而且 JSON 可以表示比”名称 / 值对”更复杂的结构。例如,可以表示数组和复杂的对象,而不仅仅是键和值的简单列表。
表示名称 / 值对
按照最简单的形式,可以用下面这样的 JSON 表示 “名称 / 值对” :{ “firstName”: “Brett” } 这个示例非常基本,而且实际上比等效的纯文本 “名称 / 值对” 占用更多的空间:firstName=Brett
但是,当将多个”名称 / 值对”串在一起时,JSON 就会体现出它的价值了。首先,可以创建包含多个”名称 / 值对”的 记录,比如:
{ “firstName”: “Brett”, “lastName”:“McLaughlin”, “email”: “aaaa” }
从语法方面来看,这与”名称 / 值对”相比并没有很大的优势,但是在这种情况下 JSON 更容易使用,而且可读性更好。例如,它明确地表示以上三个值都是同一记录的一部分;花括号使这些值有了某种联系。
Python3 Json模块
JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。Python3 可以使用 json 模块来对 JSON 数据进行编解码。
json.dumps
将 Python 对象编码转化为 json 字符串
1 | import json |
输出结果
1 | Python: {'name': 'QzmVc1', 'Age': '20', 'City': 'NanJing'} |
转化后的 Json_data 是一个字符串类型,可以使用 enumerate 来查看一下 Json_data 字符串的索引值和对应值。
1 | for i,v in enumerate(Json_data): |
输出结果片段: > 0 { 1 ” 2 n 3 a 4 m 5 e 6 ”
json.loads
将 json 格式转化为 Python 格式
1 | import json |
输出结果
1 | Python: {'name': 'QzmVc1', 'Age': '20', 'City': 'NanJing'} |
json.dump
dump 和 dumps 的功能一样,将 dict 转化为 str 的格式,然后存入文件中。
1 | import json |
json.load
load 和 loads 的功能一样,从文件中读取 str 格式并将其转化为字符串。
1 | file = open('Demo.txt', 'r') |
load 在读取的时候,只需要文件对象一个参数即可。而 dump 在使用的时候,需要 Python 对象作为第一个传入参数,文件对象作为第二个传入参数。
小结:
dump 或 dumps, 把其他对象或者格式,转化为 json 格式,dumps 用来处理字符串,dump 用来处理文件。 load 或 loads ,把 json 格式转化成其他格式,loads 用来处理字符串,load 用来处理文件。