爬虫3.1—json用法教程综述技术教程

爬虫3.1 — json用法教程

综述

本系列文档用于对爬虫技术的学习进行简单的教程讲解,巩固自己技术知识的同时,万一一不小心又正好对你有用那就更好了。

版本是3.7.4

前面的几篇文章讲述了如何进行抓取网页数据,如何进行解析HTML的获取数据用法,本篇文章开始我们讲述如何处理所获得的数据,首先我们来学习json数据文件的处理。

json 介绍 什么是json

JSON( ,JS 对象标记)是一种轻量级的数据交换格式。它基于(w3c制定的js规范)一个自己,采用完全独立于编程语言的文本格式来存储和表示数据。JSON是存储和交换文本信息的语法,类似XML。JSON比XML更小、更快,更易解析简介和清晰的层次结构是的JSON成为理想的数据交换语言爬虫3.1—json用法教程综述技术教程,易于人阅读和编写,同时也易于机器解析和生成json和字典有什么区别,并有效提升网络数据传输。

json支持数据格式 对象(字典),使用花括号。列表(数组),使用中括号。整形、浮点型。字符串类型(字符串必须要用双引号,不能使用单引号)。逻辑值(true或false)。null。

多个数据之间使用都好分开。

【注意】json本质上就是一个字符串。

json库的使用

json库是中的一个标准库,json库中有四个方法,分别是:

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

load和loads是把json格式的数据转换为字典格式json和字典有什么区别,load直接从json文件中读取数据并返回字典对象json和字典有什么区别,loads把字符串形式的json数据转换成字典格式。

下面我们就讲讲具体用法:

json.dumps()

dumps函数将字典或列表转换为json格式字符串,其原型是dumps(obj,)参数是要转换的对象。如果要转换的对象里有中文字符的话,要把设置为False否则中文会被编码为ascii格式使用示例代码如下:

    # 引入json库
    import json
    
    # 声明定义一个列表
    lt = [
        {'name': '张三', 'age': 26},
        {'name': '李四', 'age': 24},
        {'name': '王五', 'age': 23},
    ]
    # 转换成json字符串,打印
    json_str = json.dumps(lt)
    print(json_str)
    
    # 打印结果
    # [{"name": "\u5f20\u4e09", "age": 26}, {"name": "\u674e\u56db", "age": 24}, {"name": "\u738b\u4e94", "age": 23}]

json.loads()

loads()函数将json格式字符串转换为对象,原型是loads()参数是要转换成对象的json字符串。使用示例代码如下:

    # 引入json库
    import json
    
    # 声明定义一个列表
    lt = [
        {'name': '张三', 'age': 26},
        {'name': '李四', 'age': 24},
        {'name': '王五', 'age': 23},
    ]
    # 转换成json字符串,打印
    json_str = json.dumps(lt)
    print(json_str)
    obj = json.loads(json_str)
    print(obj)
    
    # 打印结果
    # [{"name": "\u5f20\u4e09", "age": 26}, {"name": "\u674e\u56db", "age": 24}, {"name": "\u738b\u4e94", "age": 23}]
    # [{'name': '张三', 'age': 26}, {'name': '李四', 'age': 24}, {'name': '王五', 'age': 23}]

json.dump()

dump()函数将对象转换为json格式字符串并且写入到文件中爬虫3.1—json用法教程综述技术教程,其原型是dump(obj, fp)第一个参数obj是要转换的对象,第二个参数fp是要写入数据的文件对象。使用示例代码如下:

    # 引入json库
    import json
    
    # 声明定义一个列表
    lt = [
        {'name': '张三', 'age': 26},
        {'name': '李四', 'age': 24},
        {'name': '王五', 'age': 23},
    ]
    # 写入json.txt文件中
    json.dump(lt, open('json.txt', 'w', encoding='utf8'), ensure_ascii=False)
    
    # with open('json.txt', 'w', encoding='utf8') as fp:
    #     json.dump(lt, fp, ensure_ascii=False)

json.load()

load()函数从文件中读取json格式字符串转换为对象,其函数原型是load(fp)参数fp是要读取的文件对象。使用示例代码如下:

    # 引入json库
    import json
    
    # 声明定义一个列表
    lt = [
        {'name': '张三', 'age': 26},
        {'name': '李四', 'age': 24},
        {'name': '王五', 'age': 23},
    ]
    # 加载json.txt文件中的json
    ret = json.load(open('json.txt', 'r', encoding='utf8'))
    print(ret)

其他博文链接