Python调用REST与SOAP API全指南|JSON、分页与OAuth实战

作者:API传播员 · 2025-10-12 · 阅读时间:5分钟
本文详细介绍了如何在Python中调用REST API和SOAP服务,包括JSON数据的读取、分页处理、错误处理以及OAuth认证的使用。通过示例代码,展示了从REST API获取JSON数据、使用WHERE子句筛选数据、从本地文件读取数据、将数据存储为CSV文件等操作,以及如何通过OAuth连接Google Sheets和读取Gmail信息。

一. 环境要求

在开始之前,请确保您的开发环境已经安装了 Python,并能够正常运行 Python 脚本。此外,您需要安装一些必要工具和库,例如 pippyodbc


二. 快速入门

1. 安装pip

如果系统尚未安装 pip,可参考官方文档进行安装:https://pip.pypa.io/en/stable/installing/

2. 安装pyodbc

安装 pip 后,在终端或命令提示符中运行以下命令安装 pyodbc:

pip install pyodbc

三. Python获取JSON数据示例

创建一个名为 zappyodbc.py 的 Python 文件,用于通过 ODBC 驱动获取 JSON 数据:

import pyodbc

# 示例:连接 REST API 并获取 JSON 数据
connection = pyodbc.connect('DRIVER={ZappySys JSON Driver};URL=https://example.com/api/data;')
cursor = connection.cursor()
cursor.execute("SELECT * FROM data")
for row in cursor:
    print(row[0])

注意:Python 对缩进敏感,请确保复制代码时保持正确缩进。


1. 使用WHERE子句筛选数据

cursor.execute("SELECT CustomerID, CompanyName FROM Customers WHERE Country='Germany'")
for row in cursor:
    print(row)

2. 从本地JSON文件获取数据

import json

with open('customer1.json', 'r') as file:
    data = json.load(file)
    print(data)

3. 读取多个JSON文件

import glob
import json

for file_name in glob.glob('customer*.json'):
    with open(file_name, 'r') as file:
        data = json.load(file)
        print(data)

4. 将REST API或JSON数据保存为CSV文件

import csv

data = [{"CustomerID": 1, "CompanyName": "Company A"}, {"CustomerID": 2, "CompanyName": "Company B"}]

with open('customer.csv', 'w', newline='') as csvfile:
    fieldnames = ['CustomerID', 'CompanyName']
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
    writer.writeheader()
    writer.writerows(data)

5. 使用OAuth连接Google Sheets

  1. 在 Windows ODBC 数据源中添加 ZappySys JSON 驱动

  2. 配置 URL:

    https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/values/{range}
  3. 选择 OAuth 认证,并填写客户端 ID 和密钥

  4. 生成令牌后获取数据:

cursor.execute("SELECT * FROM GoogleSheetData")
for row in cursor:
    print(row)

6. 读取Gmail信息

  1. 添加 ODBC DSN 连接 Gmail
  2. 配置 URL:
https://gmail.googleapis.com/gmail/v1/users/me/messages
  1. OAuth 设置选择 Google 并添加邮件权限作用域
cursor.execute("SELECT Sender, Recipient, IP FROM GmailData")
for row in cursor:
    print(row)

四. 调用XML SOAP Web服务

1. SOAP Web服务简介

SOAP(Simple Object Access Protocol)是一种基于 XML 的协议,用于网络信息交换。调用步骤:

  1. 获取 WSDL 文件或 URL
  2. 确定 Web 服务 URL

2. 使用ZappySys XML驱动调用SOAP API示例

SELECT * FROM $ 
WITH(
    Src='http://www.holidaywebservice.com/HolidayService_v2/HolidayService2.asmx',
    DataConnectionType='HTTP',
    CredentialType='Basic',
    UserName='myuser',
    Password='mypassword',
    RequestMethod='POST',
    RequestData='US'
)

3. 使用 SoapUI 测试SOAP

  1. 打开 SoapUI,创建 SOAP 项目
  2. 输入 WSDL URL,例如:
http://www.dneonline.com/calculator.asmx?wsdl
  1. 配置 SOAP 请求参数并测试响应

五. SOAP/REST API分页处理

1. 按响应属性分页

SELECT * FROM $ 
WITH(
    Src='https://example.com/api/data',
    NextUrlAttributeOrExpr='$.nextlink'
)

2. 按URL参数分页

SELECT * FROM $ 
WITH(
    Src='https://example.com/api/data?page=1',
    PagingMode='ByUrlParameter',
    PagingByUrlAttributeName='page',
    IncrementBy=1
)

六. 错误处理机制

ODBC PowerPack 提供多种错误处理方式:

  1. 自动跳过网络异常
  2. 配置重试机制,针对不稳定服务多次尝试

七. 总结

本文介绍了如何在 Python 中调用 REST API 与 SOAP 服务,包括:

  • JSON 数据获取与处理
  • 多文件与本地文件操作
  • 分页处理与错误处理
  • OAuth 认证的应用

通过本文示例,您可以轻松实现 Web 服务的数据集成与操作。

原文链接: https://zappysys.com/blog/set-rest-python-client/