2.5 Python库

本节主题: 2.5 Python库

课程讲师: Yunlin

观看地址: 点我进入


1 本节要点

  • 了解pip的概念、用法
  • 掌握Python中模块(Module)的概念,以及如何引入模块/标准库/第三方库
  • 重点掌握Python中JSON库与Requests库

2 课前准备

2.1 安装Requests库

在命令行下通过pip安装:

pip install requests

出现Successfully insatlled requests-xxxx即表示安装成功!


3 课程内容

3.1 pip 与 Python库

3.1.1 pip是什么

pip是一个以Python计算机程序语言写成的软件包管理系统,提供了对 Python 包的查找、下载、安装、卸载的功能。


3.1.2 模块的概念

前面我们提到了在Python中定义变量和函数,如果你从 Python 解释器退出再进入,那么你定义的所有的方法和变量就都消失了。

为此 Python 提供了一个办法,把这些定义存放在文件中,为一些脚本或者交互式的解释器实例使用,这个文件被称为模块。


定义模块:

#!/usr/bin/python3
# Filename: support.py
 
def print_func( par ):
    print ("Hello : ", par)
    return

调用模块:

#!/usr/bin/python3
# Filename: test.py
 
# 导入模块
import support
 
# 现在可以调用模块里包含的函数了
support.print_func("Runoob")

3.1.3 包的概念

包是一种管理 Python 模块命名空间的形式,采用"点模块名称"; 比如一个模块的名称是 A.B, 那么他表示一个包 A中的子模块 B 。


3.1.4 Python丰富的库

除了内建的模块外,Python还有大量的第三方模块。

基本上,所有的第三方模块都会在PyPI - the Python Package Index上注册,只要找到对应的模块名字,即可用pip安装。

库名 介绍
Math Math模块提供了许多对浮点数的数学运算函数;
NumPy NumPy引入了支持大型多维数组和矩阵的函数,同时还引入了高级数学函数来处理这些数组和矩阵;
Matplotlib Matplotlib是Python中最流行的数据可视化库。允许生成和构建各种各样的图;
Pandas Pandas主要用于数据操作和数据分析;
Scrapy Scrapy是另一个可有效用于网页抓取的Python库。它是一个开源的协作框架,用于从网站中提取所需数据。使用起来快捷简单。

3.1.5 如何导入库

使用import就可以导入一个库,然后使用库中的函数。

import math
import numpy as np
from numpy import *

3.2 Json库

JavaScript对象表示法是一种流行的方式将数据格式化,成为人可读的字符串。JSON是JavaScript变成编写数据结构的原生方式,不需要了解JavaScript,也能处理JSON格式的数据

下面是JOSN格式数据的一个例子:

{"name":"Zophie","isCat":true,"miceCaught":0,"napsTaken":37.5,"felineIQ":null}

3.2.1 导入json库

导入json模块后,就可以调用相关函数,JSON字符串总是用双引号

import json

Python 原始类型向 JSON 类型的转化对照表:

Python JSON
dict object
list, tuple array
str, unicode string
int, long, float number
True true
False false
None null

3.2.2 JSON格式转换

  • json.loads

要将包含JSON数据的字符串转换为Python的值,就将它传递给json.loads()函数

import json
a='{"name":"Zophie","isCat":true,"miceCaught":0,"napsTaken":37.5,"felineIQ":null}'
b=json.loads(a)
print(b)

  • json.dumps()

将一个Python值转换成JSON格式的数据字符串,该值只能是以下基本Python数据类型之一:字典、列表、整型、浮点型、字符串、布尔型或None

import json
a={'name': 'Zophie', 'isCat': True, 'miceCaught': 0, 'napsTaken': 37.5, 'felineIQ': None}
b=json.dumps(a)
print(b)

3.2.3 JSON与字典的差别

从形式上看,都是“Key:Value”的形式。但是从本质上讲,字典是一种数据结构,而json是一种格式;字典有很多内置函数,有多种调用方法,而json是数据打包的一种格式,并不像字典具备操作性,并且是格式就会有一些形式上的限制,比如json的格式要求必须且只能使用双引号作为key或者值的边界符号,不能使用单引号,而且“key”必须使用边界符(双引号),但字典就无所谓了。


3.3 requests库

Requests文档地址:点我查看


3.3.1 导入Requests库

import requests

3.3.2 Requests的具体构成

requests.request(method, url, ``*``*``kwargs)


3.3.3 使用Requests

要通过GET访问一个页面,只需要几行代码:

>>> import requests
>>> r = requests.get('https://www.baidu.com/') # 百度
>>> r.status_code
200
>>> r.text
r.text

3.3.4 注意请求格式

接口最常见的请求格式有 json/application 及 x-www-form-urlencoded,我们已经在第一节课讲了其区别,在实际调用接口过程中,我们要根据接口的请求格式,对参数进行处理!

  • 接口请求格式为 application/json
import requests
import urllib.parse
import json

url = "https://nvoiceocr.market.alicloudapi.com/taxinvoice"

payload = {"image":"http://www.xxxx.com/xxxx.png"}

headers = {
  'Authorization': 'APPCODE xxxxxxxxxxxxxxx',
  'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data = json.dumps(payload))

json.loads(response.text)

  • 接口请求格式为 x-www-form-urlencoded

urlencode 即url编码,把数据转换为类似url传参的格式

urlencode前

{"image":"http://www.xxxx.com/xxxx.png"}

urlencode后

'image=http%3A%2F%2Fwww.xxxx.com%2Fxxxx.png'

import requests
import urllib.parse
import json

url = "https://nvoiceocr.market.alicloudapi.com/taxinvoice"

payload = {"image":"http://www.xxxx.com/xxxx.png"}

headers = {
  'Authorization': 'APPCODE xxxxxxxxxxxxxxx',
  'Content-Type': 'application/x-www-form-urlencoded'
}

response = requests.request("POST", url, headers=headers, data = urllib.parse.urlencode(payload))

json.loads(response.text)
本文是否对您有帮助?
 有帮助
 没帮助
您是否遇到了以下问题?
如需获取即时帮助,请联系技术支持