储存模块之JSON

简介: 储存模块之JSON

JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

作为当前主流的数据传输格式,在他横空出世之前,网页上的数据传输是使用的XML的方式,而他一出现就广受欢迎。

实际上 json的格式和 python中的字典很像,也是由键值对组成,但是 python中的值可以为任何对象(列表、字典、字符串、数字等等),而 json中的值只能是数组(列表)、字典、字符串、数组、布尔值中的一中或几种。如下就是一个json数据:

{
    "key1": "value1",
    "key2": [1,2,"value2"],
    "key3": 
    {
        "key31": "value1",
        "key32": [1,2,"value2"],
        "key33": true,
    },
}

python中有个内置的处理json数据的库,该库有4个方法,分别是:dump(),dumps(),load(),loads()

dump(obj,fp)

参数obj表示python的字典对象,参数fq表示文件对象

将python对象的字典转为json格式的字符串,并写入fp文件对象对应的文件

import json
dic = {"name": "python", "score": [1,2,3,4]}
print(json.dump(dic, open("1.json", "w")))

dumps(obj)

参数obj表示python的字典对象

将字典转为json格式的字符串,这样就可以用另一种方式写入json文件了

import json
dic = {"name": "hxd", "score": [1,2,3,4]}
with open("2.json", "w") as f:
    f.write(json.dumps(dic, ensure_ascii=False)) 

load(fp)

fp是文件对象

该函数表示将该文件对象对应的文件内容读取并转为字典对象

import json
json_data = json.load(open("1.json", 'r'))
print(type(json_data)) # <class 'dict'>
print(type(json_data)) # {'name': 'hxd', 'score': [1, 2, 3, 4]}

loads(string)

参数string是一个json类型的字符串

该函数将json数据类型的字符串转为python对象,在我们做爬虫时,爬到了json数据就应该使用该函数来将其转为dict对象,然后使用键的方式解析得到我们需要的数据

import json
with open("2.json", "r") as f:
    text = f.read()
    json_data = json.loads(text)
print(type(text)) #<class 'str'>
print(text) # {"name": "hxd", "score": [1, 2, 3, 4]}
print(type(json_data)) # <class 'dict'>
print(json_data) # {'name': 'hxd', 'score': [1, 2, 3, 4]}

注意

  • 注意,在使用dump()和dumps()的时候,如果字典内存在中文,需要设定ensure_ascii=False,不然会以asciima的方式出现
  • 数组的()在转换为json格式是会变成列表的[]


目录
相关文章
|
10月前
|
存储 XML JSON
json模块和pickle模块
json模块和pickle模块
59 0
|
2月前
|
JSON JavaScript 前端开发
json模块与jsonpath详解
json模块与jsonpath详解
|
3月前
|
JSON 数据格式 Python
Python标准库中包含了json模块,可以帮助你轻松处理JSON数据
【4月更文挑战第30天】Python的json模块简化了JSON数据与Python对象之间的转换。使用`json.dumps()`可将字典转为JSON字符串,如`{&quot;name&quot;: &quot;John&quot;, &quot;age&quot;: 30, &quot;city&quot;: &quot;New York&quot;}`,而`json.loads()`则能将JSON字符串转回字典。通过`json.load()`从文件读取JSON数据,`json.dump()`则用于将数据写入文件。
29 1
|
3月前
|
JSON 前端开发 API
Python中的JSON模块:从基础到高级应用全解析
【2月更文挑战第3天】 Python中的JSON模块:从基础到高级应用全解析
441 6
|
3月前
|
存储 JSON JavaScript
Python中的JSON与Pickle模块:数据序列化和反序列化的利器
在Python编程中,数据的序列化和反序列化是经常遇到的操作。序列化是将数据结构或对象状态转换为可以存储或传输的格式的过程,而反序列化则是这个过程的逆操作,即将序列化的数据重新转换回原来的数据结构或对象状态。Python中的JSON和Pickle模块就是实现数据序列化和反序列化的强大工具。
|
3月前
|
存储 JSON 安全
序列化模块pickle和json有什么区别
序列化模块pickle和json有什么区别
45 0
|
9月前
|
JSON Linux 开发工具
linux 利用python模块实现格式化json
linux 利用python模块实现格式化json
65 0
|
JSON JavaScript 前端开发
【Python】一文带你了解并使用 Json 模块
python的json模块是python官方提供的一个用于解析和生成JSON数据格式的库。JSON是JavaScript对象表示法(JavaScript Object Notation)的缩写,是一种轻量级的数据交换格式,常被用于Web应用程序中,也被广泛地应用于非Web应用程序中。python的json库可以方便地将python中的数据转换为JSON格式数据,并支持将JSON格式数据转换为python中的数据类型。
264 0
【Python】一文带你了解并使用 Json 模块
|
12月前
|
存储 JSON JavaScript
【从零学习python 】55.Python中的序列化和反序列化,JSON与pickle模块的应用
【从零学习python 】55.Python中的序列化和反序列化,JSON与pickle模块的应用
87 0
|
JSON JavaScript 前端开发
python中的JSON模块详解
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写同时也方便了机器进行解析和生成。适用于进行数据交互的场景,比如网站前台与后台之间的数据交互。
91 0