python爬虫如何使用json库

  介绍

这期内容当中小编将会给大家带来有python爬关虫如何使用json库文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

实际应用中爬取到的信息肯定是需要保存到本地的。保存信息的方式有数据库和文件的形式,数据库我们后面再讲,现在让我们先看看怎么把信息保存到文件里。

这里我们主要讲讲将数据保存为json格式和csv格式,这就要用到两个库json库和csv库,这两个库都是python自带的库。

关于数据存储我们分两篇来讲,这一篇先讲json,下一篇再讲csv。

<强>一、关于json

json的简介直接引用百度百科的定义:

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

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

其格式就像下面这样:

注意:json中的引号必须是双引号,否则会报错

{   ,,,“key1":,“value1"   ,,,“key2":, (1、2、“value2"),   ,,,“key3":,   ,,,{   ,,,,,,,“key31":,“value1"   ,,,,,,,“key32":, (1、2、“value2"),   ,,,,,,,“key33":,真的,   ,,,},   }

<强>二,json库的使用

json库一共有三个方法,分别是转储,转储,负载,负载。

其中转储和转储是用来把把字典和数组转换为json格式的,将把转换结果直接写入文件,转储返回字符串。

负载和负载是把json格式的数据转换为字典格式,负载直接从json文件中读取数据并返回字典对象,负载把字符串形式的json数据转换成字典格式。

下面讲讲这些方法的具体用法。

1、转储和转储的

函数原型是转储(obj, fp)第一个参数obj是要转换的对象,第二个参数fp是要写入数据的文件对象。

转储的函数原型是转储(obj)参数是要转换的对象

注意:如果要转换的对象里有中文字符的话,要把ensure_ascii设置为假否则中文会被编码为ascii格式

# - *安康;编码:utf-8  - *   import  json         test =, {   ,,,“key1":,“value1"   ,,,“key2":, (1、2、“value2"),   ,,,“key3":   ,,,{   ,,,,,,,“key31":,“value1"   ,,,,,,,“key32":, (1、2、“value2"),   ,,,,,,,“key33":,真的,   ,,,,,,,“key34":,“测试,,   ,,,},   }      #没有设置,ensure_ascii为,假的   with 开放(& # 39;test.json& # 39;,, & # 39; w # 39;,,编码=& # 39;utf - 8 # 39;), as 外交政策:   ,,,json.dump(测试,fp)   #设置了,ensure_ascii为,假的   with 开放(& # 39;test_no_ascii.json& # 39;,, & # 39; w # 39;,,编码=& # 39;utf - 8 # 39;), as 外交政策:   ,,,json.dump (fp,测试,ensure_ascii=False)      # test.json的文件内容为:   # {…,…,“key33",,真的,,“key34":,“\ u6d4b \ u8bd5"}}   # test_no_ascii.json的文件内容为:   # {…,…,“key33",,真的,,“key34":,“测试“}}   #注意到,python中的,真正的转换成了,Javascript里的,真的   #另外在打开文件的时候强烈建议用,编码指定文件编码   #还需要注意文件的打开模式,w是写入,文件已存在的话就覆盖   #要追加写入的话记得用,一个模式打开      时间=test_string  json.dumps(测试,ensure_ascii=False)   打印(test_string)

2,负载和负载

负载的函数原型是负载(fp)参数fp是要读取的文件对象

加载的函数原型是加载(string)参数的字符串是要转换成python对象的json字符串,通常用来将网页中的json数据转换为python对象

# - *安康;编码:utf-8  - *   import  json         # json格式的字符串   时间=test_string  & # 39; {“key1":“value1",,“key2":, (1,, 2,,“value2"],,“key3":, {“key31":“value1",,“key32":, (1,, 2,,“value2"),,   “key33":真的,,“key34":,“测试“}}& # 39;      #从之前保存的,test_no_ascii.json中读取,注意模式为,r   with 开放(& # 39;test_no_ascii.json& # 39;,, & # 39; " # 39;,,编码=& # 39;utf - 8 # 39;), as 外交政策:   ,,,json_obj_from_file =, json.load (fp)      时间=json_obj_from_web  json.loads (test_string)      #打印两个返回结果的类型   print(类型(json_obj_from_file))   print(类型(json_obj_from_web))   #打印两个返回结果的内容   打印(json_obj_from_file)   打印(json_obj_from_web)

python爬虫如何使用json库