金银回收东莞网站建设,flashfxp 网站,wordpress后台登不了是什么原因,整个网站都在下雪特效怎么做订阅#xff1a;新手可以订阅我的其他专栏。免费阶段订阅量1000 python项目实战 Python编程基础教程系列#xff08;零基础小白搬砖逆袭) 说明#xff1a;本专栏持续更新中#xff0c;目前专栏免费订阅#xff0c;在转为付费专栏前订阅本专栏的#xff0c;可以免费订阅付… 订阅新手可以订阅我的其他专栏。免费阶段订阅量1000 python项目实战 Python编程基础教程系列零基础小白搬砖逆袭) 说明本专栏持续更新中目前专栏免费订阅在转为付费专栏前订阅本专栏的可以免费订阅付费专栏可报销名额有限先到先得。 即将转为付费专栏更多详细请看五一或有优惠活动哦。 关于专栏〖Python网络爬虫实战〗转为付费专栏的订阅说明 作者爱吃饼干的小白鼠。Python领域优质创作者2022年度博客新星top100入围荣获多家平台专家称号。 最近更新 〖Python网络爬虫实战⑳〗- 数据存储之CSV操作实战 上节回顾
我们在上一节博客中和大家介绍了TXT保存CSV文件保存我们还和大家介绍了一篇CSV实战的博客。我们已经学习了好几种数据的存储方式。本篇博客我们就来了解如何利用 Python 保存数据到 JSON 文件。
⭐️ JSON存储
我们首先先来认识一下什么是JSONJSON的全称为 JavaScript Object Notation, 也就是 JavaScript 对象标记它通过对象和数组的组合来表示数据构造简洁但是结构化程度非常高是一种轻量级的数据交换格式。是一种非常常见的数据格式。
对象和数组
在 JavaScript 语言中一切都是对象。因此任何支持的类型都可以通过 JSON 来表示例如字符串、数字、对象、数组等但是对象和数组是比较特殊且常用的两种类型下面简要介绍一下它们。
✨对象
对象Object对象是 JavaScript 中最基本的数据类型它是由一组属性和方法组成的封装体通常被用于存储数据、服务等信息。一个对象通常是通过对象字面量或构造函数创建的。
{ name: John, age: 30, email: johnedu.com, phone: 123-456-7890
}
在这个 JSON 对象中每个键key都对应一个值value这些值被组织成一个数组每个键值对表示 JSON 中的一行内容。对象内的这些数据之间是用逗号分隔的这个分隔符也是 JSON 的一个特性。
✨数组
数组Array数组是一组相同类型的元素的集合通常用于存储一系列数据。数组在 JavaScript 中非常常用尤其是在需要动态存储一些大量数据的情况下使用数组可以很方便地管理这些数据。数组在内存中占用较少的空间也便于随机访问。
[ { name: Alice, age: 30, email: aliceedu.com }, { name: Bob, age: 25, email: bobedu.com }, { name: Charlie, age: 35, email: charlieedu.com }
]
在 JavaScript 中数组是一种比较特殊的数据类型它也可以像对象那样使用键值对但还是索引用得多。同样值的类型可以是任意类型。
✨区别
对象和数组的区别在于对象是一个更加封装的数据结构它包含了属性和方法这些属性和方法可以被访问和修改。而数组则是一个更加灵活的数据结构它可以存储不同类型的元素而且可以通过索引访问元素。另外数组是一个固定长度的数据结构不能动态扩展大小而对象则可以通过new操作符来创建新对象同时还可以重写对象的方法。
总之对象和数组都是 JavaScript 中非常重要的数据类型可以根据具体情况来选择使用。在进行文本编辑、交互式数据处理等任务时使用对象更加方便和灵活而在需要存储大量数据或处理大规模数据时使用数组更加方便和快速。
读取 和输出JSON
Python 为我们提供了简单易用的 JSON 库来实现 JSON 文件的读写操作我们可以调用 JSON 库的 loads 方法将 JSON 文本字符串转为 JSON 对象实际上 JSON 对象为 Python 中的 list 和 dict 的嵌套和组合这里称之为 JSON 对象。另外我们还可以通过 dumps 方法将 JSON 对象转为文本字符串。
✨loads方法
例如这里我们用上面的JSON 形式的字符串作为演示它是 str 类型我们用 Python 将其转换为可操作的数据结构如列表或字典 import json
str [{name: Alice,age: 30,email: aliceedu.com},{name: Bob,age: 25,email: bobedu.com},{name: Charlie,age: 35,email: charlieedu.com}
]
print(type(str))
data json.loads(str)
print(data)
print(type(data))
我们来运行一下看看效果。
class str
[{name: Alice, age: 30, email: aliceedu.com}, {name: Bob, age: 25, email: bobedu.com}, {name: Charlie, age: 35, email: charlieedu.com}]
class list
我们在这里需要注意JSON 字符串的表示需要用双引号否则这里会出现 JSON 解析错误的提示。因为数据用单引号来包围就会出现loads 方法会解析失败。
如果从 JSON 文本中读取内容例如这里有一个 data.json 文本文件其内容是刚才定义的 JSON 字符串我们可以先将文本文件内容读出然后再利用 loads 方法转化
import jsonwith open(data.json, encodingutf-8) as file:str file.read()data json.loads(str)print(data)
这样就把我们要的数据读取了。
✨dumps方法
另外我们还可以调用 dumps 方法将 JSON 对象转化为字符串。例如将上例中的列表重新写入文本。
import json# 定义一个 JSON 对象
data {name: Alice,age: 30,email: aliceexample.com
}# 将 JSON 对象转化为字符串
json_string json.dumps(data)# 打印字符串
print(json_string)
我们来打印看看上面效果
{name: Alice, age: 30, email: aliceexample.com}
如果我们想写入到json文件那么我们如何写代码呢。
with open(data.json, w, encodingutf-8) as file:file.write(json.dumps(data, indent2, ensure_asciiFalse))
这段代码将打开名为 data.json 的文件并将 data 对象写入文件中。json.dumps() 方法用于将 data 对象转换为 JSON 字符串并将其写入文件中。indent 参数用于指定缩进级别ensure_ascii 参数用于指定是否确保字符串中的非 ASCII 字符正确显示。
在这个例子中我们使用 json.dumps() 方法将 data 对象转换为带缩进的字符串并将其写入文件中。在写入时我们指定了 indent2 参数这意味着每个缩进级别将使用两个空格进行缩进。此外我们还指定了 ensure_asciiFalse 参数这意味着输出的字符串将不会出现 BOM字节顺序标记。
类比 loads 与 load 方法dumps 也有对应的 dump 方法它可以直接将 JSON 对象全部写入到文件中因此上述的写法也可以写为如下形式
json.dump(data, open(data.json, w, encodingutf-8), indent2, ensure_asciiFalse)
这里第一个参数就是 JSON 对象第二个参数可以传入文件操作对象其他的 indent、ensure_ascii 对象还是保持不变运行效果是一样的。
总结
load、loads、dump和dumps它们之间的主要区别包括以下几点 1、json.loads将一个Python数据结构字符串转换为JSON格式数据 2. json.dumps将一个JSON编码的字符串转换回一个Python数据结构即字符串 3. json.dump() 和 json.load() 来编码和解码JSON数据,用于处理文件
我们可以这样记忆 按照如下记忆 文件dump、load 字符串dumps、loads 编码dump、dumps 解码load、loads 文章转载自: http://www.morning.ncrk.cn.gov.cn.ncrk.cn http://www.morning.fktlr.cn.gov.cn.fktlr.cn http://www.morning.sthp.cn.gov.cn.sthp.cn http://www.morning.zpzys.cn.gov.cn.zpzys.cn http://www.morning.mljtx.cn.gov.cn.mljtx.cn http://www.morning.qjldz.cn.gov.cn.qjldz.cn http://www.morning.rwnx.cn.gov.cn.rwnx.cn http://www.morning.krbjb.cn.gov.cn.krbjb.cn http://www.morning.prlgn.cn.gov.cn.prlgn.cn http://www.morning.qhqgk.cn.gov.cn.qhqgk.cn http://www.morning.lctrz.cn.gov.cn.lctrz.cn http://www.morning.mrgby.cn.gov.cn.mrgby.cn http://www.morning.mmtjk.cn.gov.cn.mmtjk.cn http://www.morning.qdxwf.cn.gov.cn.qdxwf.cn http://www.morning.gbnsq.cn.gov.cn.gbnsq.cn http://www.morning.wcrcy.cn.gov.cn.wcrcy.cn http://www.morning.clbgy.cn.gov.cn.clbgy.cn http://www.morning.dbrdg.cn.gov.cn.dbrdg.cn http://www.morning.lndongguan.com.gov.cn.lndongguan.com http://www.morning.pqcrz.cn.gov.cn.pqcrz.cn http://www.morning.mjgxl.cn.gov.cn.mjgxl.cn http://www.morning.qphgp.cn.gov.cn.qphgp.cn http://www.morning.wpmqq.cn.gov.cn.wpmqq.cn http://www.morning.rtpw.cn.gov.cn.rtpw.cn http://www.morning.ebpz.cn.gov.cn.ebpz.cn http://www.morning.elmtw.cn.gov.cn.elmtw.cn http://www.morning.jrslj.cn.gov.cn.jrslj.cn http://www.morning.lfpzs.cn.gov.cn.lfpzs.cn http://www.morning.ljjph.cn.gov.cn.ljjph.cn http://www.morning.bpmdr.cn.gov.cn.bpmdr.cn http://www.morning.ncwgt.cn.gov.cn.ncwgt.cn http://www.morning.qkcyk.cn.gov.cn.qkcyk.cn http://www.morning.jbpdk.cn.gov.cn.jbpdk.cn http://www.morning.zbkwj.cn.gov.cn.zbkwj.cn http://www.morning.ntffl.cn.gov.cn.ntffl.cn http://www.morning.zyrp.cn.gov.cn.zyrp.cn http://www.morning.pghry.cn.gov.cn.pghry.cn http://www.morning.hdzty.cn.gov.cn.hdzty.cn http://www.morning.bxyzr.cn.gov.cn.bxyzr.cn http://www.morning.ykmkz.cn.gov.cn.ykmkz.cn http://www.morning.tnwwl.cn.gov.cn.tnwwl.cn http://www.morning.wrdlf.cn.gov.cn.wrdlf.cn http://www.morning.wplbs.cn.gov.cn.wplbs.cn http://www.morning.rfpb.cn.gov.cn.rfpb.cn http://www.morning.cniedu.com.gov.cn.cniedu.com http://www.morning.ydwsg.cn.gov.cn.ydwsg.cn http://www.morning.jpkk.cn.gov.cn.jpkk.cn http://www.morning.bgqqr.cn.gov.cn.bgqqr.cn http://www.morning.pwsnr.cn.gov.cn.pwsnr.cn http://www.morning.ntqgz.cn.gov.cn.ntqgz.cn http://www.morning.ho-use.cn.gov.cn.ho-use.cn http://www.morning.ysrtj.cn.gov.cn.ysrtj.cn http://www.morning.hmxb.cn.gov.cn.hmxb.cn http://www.morning.zlkps.cn.gov.cn.zlkps.cn http://www.morning.mdplm.cn.gov.cn.mdplm.cn http://www.morning.whpsl.cn.gov.cn.whpsl.cn http://www.morning.wsxly.cn.gov.cn.wsxly.cn http://www.morning.pbpcj.cn.gov.cn.pbpcj.cn http://www.morning.nxfuke.com.gov.cn.nxfuke.com http://www.morning.bpmnj.cn.gov.cn.bpmnj.cn http://www.morning.qbwtb.cn.gov.cn.qbwtb.cn http://www.morning.yrfxb.cn.gov.cn.yrfxb.cn http://www.morning.iqcge.com.gov.cn.iqcge.com http://www.morning.lkbkd.cn.gov.cn.lkbkd.cn http://www.morning.lclpj.cn.gov.cn.lclpj.cn http://www.morning.djpps.cn.gov.cn.djpps.cn http://www.morning.qbdqc.cn.gov.cn.qbdqc.cn http://www.morning.bctr.cn.gov.cn.bctr.cn http://www.morning.zgpgl.cn.gov.cn.zgpgl.cn http://www.morning.pwqyd.cn.gov.cn.pwqyd.cn http://www.morning.zcnfm.cn.gov.cn.zcnfm.cn http://www.morning.qrzqd.cn.gov.cn.qrzqd.cn http://www.morning.zjrnq.cn.gov.cn.zjrnq.cn http://www.morning.cljmx.cn.gov.cn.cljmx.cn http://www.morning.ndzhl.cn.gov.cn.ndzhl.cn http://www.morning.pcgjj.cn.gov.cn.pcgjj.cn http://www.morning.langlaitech.cn.gov.cn.langlaitech.cn http://www.morning.rshs.cn.gov.cn.rshs.cn http://www.morning.qysnd.cn.gov.cn.qysnd.cn http://www.morning.smspc.cn.gov.cn.smspc.cn