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

python怎么读取json文件内容

发布网友 发布时间:2022-04-22 12:51

我来回答

2个回答

懂视网 时间:2022-04-07 13:17

在对数据进行序列化和反序列化是常见的数据操作,Python提供了两个模块方便开发者实现数据的序列化操作,即 json 模块和 pickle 模块。这两个模块主要区别如下:

json 是一个文本序列化格式,而 pickle 是一个二进制序列化格式;

json 是我们可以直观阅读的,而 pickle 不可以;

json 是可互操作的,在 Python 系统之外广泛使用,而 pickle 则是 Python 专用的;

默认情况下,json 只能表示 Python 内置类型的子集,不能表示自定义的类;

但 pickle 可以表示大量的 Python 数据类型。

推荐学习:Python视频教程

Json 模块

Json 是一种轻量级的数据交换格式,由于其具有传输数据量小、数据格式易解析等特点,它被广泛应用于各系统之间的交互操作,作为一种数据格式传递数据。它包含多个常用函数,具体如下:

dumps()函数

dumps()函数可以将 Python 对象编码成 Json 字符串。例如:

#
字典转成json字符串 加上ensure_ascii = False以后, 可以识别中文, indent = 4 是间隔4个空格显示

import json
d = {
 '小明': {
 'sex': '男',
 'addr': '上海',
 'age': 26
 },
 '小红': {
 'sex': '女',
 'addr': '上海',
 'age': 24
 },
}
print(json.dumps(d, ensure_ascii = False, indent = 4))

# 执行结果: {
 "小明": {
 "sex": "男",
 "addr": "上海",
 "age": 26
 },
 "小红": {
 "sex": "女",
 "addr": "上海",
 "age": 24
 }
}

dump()函数

dump()函数可以将 Python对象编码成 json 字符串,并自动写入到文件中,不需要再单独写文件。例如:

#
字典转成json字符串, 不需要写文件, 自动转成的json字符串写入到‘ users.json’ 的文件中
import json
d = {
 '小明': {
 'sex': '男',
 'addr': '上海',
 'age': 26
 },
 '小红': {
 'sex': '女',
 'addr': '上海',
 'age': 24
 },
}#
打开一个名字为‘ users.json’ 的空文件
fw = open('users.json', 'w', encoding = 'utf-8')

json.dump(d, fw, ensure_ascii = False, indent = 4)

loads()函数

loads()函数可以将 json 字符串转换成 Python 的数据类型。例如:

#
这是users.json文件中的内容 {
 "小明": {
  "sex": "男",
  "addr": "上海",
  "age": 26
 },
 "小红": {
  "sex": "女",
  "addr": "上海",
  "age": 24
 }
 }

#!/usr/bin / python3# 把json串变成python的数据类型
import json# 打开‘ users.json’ 的json文件
f = open('users.json', 'r', encoding = 'utf-8')# 读文件
res = f.read()
print(json.loads(res))

# 执行结果: {
 '小明': {
 'sex': '男',
 'addr': '上海',
 'age': 26
 },
 '小红': {
 'sex': '女',
 'addr': '上海',
 'age': 24
 }
}

load()函数

load()跟loads()功能相似,load()函数可以将 json 字符串转换成 Python 数据类型,不同的是前者的参数是一个文件对象,不需要再单独读此文件。例如:

#
把json串变成python的数据类型: 字典, 传一个文件对象, 不需要再单独读文件
import json# 打开文件
f = open('users.json', 'r', encoding = 'utf-8')
print(json.load(f))

# 执行结果: {
 '小明': {
 'sex': '男',
 'addr': '上海',
 'age': 26
 },
 '小红': {
 'sex': '女',
 'addr': '上海',
 'age': 24
 }
}

Pickle 模块

Pickle 模块与 Json 模块功能相似,也包含四个函数,即 dump()、dumps()、loads() 和 load(),它们的主要区别如下:

dumps 和 dump 的区别在于前者是将对象序列化,而后者是将对象序列化并保存到文件中。loads 和 load 的区别在于前者是将序列化的字符串反序列化,而后者是将序列化的字符串从文件读取并反序列化。

dumps()函数

dumps()函数可以将数据通过特殊的形式转换为只有python语言认识的字符串,例如:

import pickle# dumps功能
import pickle
data = ['A', 'B', 'C', 'D']
print(pickle.dumps(data))

b 'x80x03]qx00(Xx01x00x00x00Aqx01Xx01x00x00x00Bqx02Xx01x00x00x00Cqx03Xx01x00x00x00Dqx04e.'

dump()函数

dump()函数可以将数据通过特殊的形式转换为只有python语言认识的字符串,并写入文件。例如:

# dump功能
with open('test.txt', 'wb') as f:
 pickle.dump(data, f)
 print('写入成功')

写入成功

loads()函数

loads()函数可以将pickle数据转换为python的数据结构。例如:

# loads功能
msg = pickle.loads(datastr)
print(msg)
['A', 'B', 'C', 'D']

load()函数

load()函数可以从数据文件中读取数据,并转换为python的数据结构。例如:

# load功能with open('test.txt', 'rb') as f:
 data = pickle.load(f)
 print(data)
['A', 'B', 'C', 'D']

本文来自 python教程 栏目,欢迎学习!

热心网友 时间:2022-04-07 10:25

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。

JSON在python中分别由list和dict组成。

这是用于序列化的两个模块:

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么来大姨妈胸会胀 少儿学什么舞蹈 青年学什么舞蹈好 成年人学什么舞蹈 福州企业最低工资标准 2013年厦门的底薪是多少 生产要素的需求有哪些性质 生产要素的需求有何特点? 什么是生产要素需求 微观经济学要素需求什么是条件要素需求?它和要素需求有什么不同?_百度... python调用json后关闭程序会清空json文件怎么改? 请教一个关于python处理json的问题 python中处理json数据,谢谢!! python 字符串转 json 关于python里json文件的读取报错? python 的json为什么老是报错 python字符串如何转json? 如何使用Python处理JSON数据 Python如何追加JSON文件里的内容? python如何修改JSON文件中的某个key值? python 怎么处理json python修改json 对象为数组 Python如何修改JSON里的内容? 为什么我的笔记本电脑屏幕花屏还有横条纹? 笔记本花屏而且有时侯开不了机 笔记本电脑开不了机上面还有小火花怎么回事 iphone11设置闹钟铃声 电脑屏幕突然花了,然后开不了机了,求是什么原因 iphone11设置自定义闹钟铃声 电脑显示屏,会突然花屏死机这是什么原因? 微信好友视频能玩什么游戏 胶头滴管一滴多少ml? 胶头滴管一滴多少ml? 怎么从微信上查看某个好友在玩那些游戏 胶头滴管的正确使用 微信跳棋怎么加好友玩游戏 滴管和胶头滴管有区别吗? 0.5ml是几滴胶头滴管 有什么软件可以在手机上p肌肉腹肌? 在使用胶头滴管是取液后必须保持胶头在______,不能______放或______.滴加液体时,滴管应______放在容器 用什么软件能把腹肌做出来 胶头滴管的种类和规格 滴定管和胶头滴管有什么区别? 胶头滴管的头叫啥 胶头滴管使用完毕后,应如何放置和清洗? 有没有什么可以PS出腹肌的软件 胶头滴管和滴管的区别和用法 能p腹肌的软件 怎么把原来iphone里面的照片导入新iphone里面? 化学实验中胶头滴管如何清洗?