Python调用外部电商API的详细步骤

Python是一种高级编程语言,非常适合用于集成API,即应用程序编程接口。API通常是由网站和各种软件提供的接口,可以让不同的程序之间进行数据交换和通信。在Python中调用API,可以帮助我们轻松地获取数据,并将其整合到我们的应用程序中。

在这篇文章中,我们将介绍Python中如何调用API,以及在实际项目中如何应用它。我们的例子是调用item_get获取淘宝商品详情数据的API,一个提供各大电商数据接口的在线服务。

步骤1:注册并获取API密钥 

大多数API会要求你注册,然后提供API密钥以访问其数据。在OpenAPI中,你需要前往网站_https://o0b.cn/jennif_进行注册并获取API密钥。登陆后,您会看到您的API key。

步骤2:安装requests模块

requests模块是Python中使用API的重要工具。如果从未安装过,请在终端或命令行中运行“pip install requests”来安装requests模块。

步骤3:构建API请求

通过使用requests模块中的get()方法发送HTTP GET请求来探索API。例如,要获取淘宝商品详情数据,请使用以下代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

# coding:utf-8
"""
Compatible for python2.x and python3.x
requirement: pip install requests
"""
from __future__ import print_function
import requests
# 请求示例 url 默认请求参数已经做URL编码
url = "https://api-服务器.cn/taobao/item_get/?key=<your_api_key>&secret=<your_apiSecret>&num_iid=652874751412&is_promotion=1"
headers = {"Accept-Encoding": "gzip","Connection": "close"
}
if __name__ == "__main__":r = requests.get(url, headers=headers)json_obj = r.json()print(json_obj)

您需要将您的API key替换“{your_api_key}” 然后将城市名称代入到url中。 运行这段代码,我们即可获得item_get API返回的JSON格式的淘宝商品详情数据。

步骤4:解读API响应

API响应通常是在JSON格式中返回的。这些响应包含有关API请求的信息,例如成功或失败消息,以及我们需要的数据。 在上面的代码中,我们将API响应解析为JSON,并将其存储在变量“item”中。我们可以访问其中的具体数据元素,如商品标题、库存、销量、价格等。

"item": {"num_iid": "652874751412","title": "北欧轻奢布艺沙发 小户型简约现代客厅ins风网红款三双人订制沙发","desc_short": "","price": "480.00","total_price": 0,"suggestive_price": 0,"orginal_price": "480.00","nick": "惜情yqq1127","num": "200","min_num": 0,"detail_url": "https://item.taobao.com/item.htm?id=652874751412","pic_url": "//img.alicdn.com/imgextra/i4/2568161054/O1CN01aYBriY1Jem9UDtt9e_!!2568161054.jpg","brand": "#0 工厂","brandId": "1435187098","rootCatId": "50008164","cid": "50020632","crumbs": [],"created_time": "","modified_time": "","delist_time": "","desc": "<img size=\"27893\">https://img.alicdn.com/imgextra/i3/2568161054/O1CN01LFmSOU1Jem9QOjMPb_!!2568161054.jpg</img><img size=\"132455\">https://img.alicdn.com/imgextra/i3/2568161054/O1CN014vyOOT1Jem9DpHz3Y_!!2568161054.jpg</img><img size=\"2455\">https://img.alicdn.com/imgextra/i1/2568161054/O1CN01B3PpsA1Jem9N8V7uf_!!2568161054.jpg</img><img size=\"117664\">https://img.alicdn.com/imgextra/i2/2568161054/O1CN015JbyeY1Jem9MZshUt_!!2568161054.jpg</img><img size=\"16674\">https://img.alicdn.com/imgextra/i1/2568161054/O1CN01HXSoxx1Jem9RvgzHN_!!2568161054.jpg</img><img size=\"96260\">https://img.alicdn.com/imgextra/i3/2568161054/O1CN01IEultA1Jem9MdEx8R_!!2568161054.jpg</img><img size=\"13573\">https://img.alicdn.com/imgextra/i3/2568161054/O1CN0176K98O1Jem9QOjE69_!!2568161054.jpg</img><img size=\"110974\">https://img.alicdn.com/imgextra/i4/2568161054/O1CN013Pxp1O1Jem9RvgeTv_!!2568161054.jpg</img><img size=\"104198\">https://img.alicdn.com/imgextra/i1/2568161054/O1CN01SfyZ8M1Jem9QOi1Gx_!!2568161054.jpg</img><img size=\"576580\">https://img.alicdn.com/imgextra/i4/2568161054/O1CN01bb1POa1Jem9Sdgve2_!!2568161054.jpg</img><img size=\"676617\">https://img.alicdn.com/imgextra/i3/2568161054/O1CN018Eo9dV1Jem9KV0y79_!!2568161054.jpg</img><img size=\"9125\">https://img.alicdn.com/imgextra/i1/2568161054/O1CN01vuEofr1Jem9Nzy9xY_!!2568161054.jpg</img><img size=\"107197\">https://img.alicdn.com/imgextra/i4/2568161054/O1CN01qw9sAi1Jem8wkNKpy_!!2568161054.jpg</img><img size=\"198877\">https://img.alicdn.com/imgextra/i1/2568161054/O1CN01HeFhFw1Jem8rLnjBY_!!2568161054.jpg</img><img size=\"71423\">https://img.alicdn.com/imgextra/i2/2568161054/O1CN01SNgjoi1Jem9QOil15_!!2568161054.jpg</img><img size=\"37628\">https://img.alicdn.com/imgextra/i2/2568161054/O1CN01RXf3RA1Jem9DpHVwj_!!2568161054.jpg</img><img size=\"170889\">https://img.alicdn.com/imgextra/i4/2568161054/O1CN01gZmZjt1Jem9ISThgm_!!2568161054.jpg</img><img size=\"6378\">https://img.alicdn.com/imgextra/i2/2568161054/O1CN01YL0FHM1Jem9PQTjX9_!!2568161054.jpg</img><img size=\"212074\">https://img.alicdn.com/imgextra/i4/2568161054/O1CN01UhsEhZ1Jem8yvJIhZ_!!2568161054.jpg</img><img src=\"https://www.o0b.cn/i.php?t.png&rid=gw-4.64d05ab0706cc&p=1778786465&k=i_key&t=1691376306\" style=\"display:none\" />","desc_img": [],"item_imgs": [{"url": "//img.alicdn.com/imgextra/i4/2568161054/O1CN01aYBriY1Jem9UDtt9e_!!2568161054.jpg"},{"url": "//img.alicdn.com/imgextra/i3/2568161054/O1CN01kjOfNb1Jem9DmWn8Y_!!2568161054.jpg"},{"url": "//img.alicdn.com/imgextra/i1/2568161054/O1CN01HoB9ha1Jem9DmWn8r_!!2568161054.jpg"},{"url": "//img.alicdn.com/imgextra/i4/2568161054/O1CN011PjP2P1Jem9MXEUFT_!!2568161054.jpg"},{"url": "//img.alicdn.com/imgextra/i3/2568161054/O1CN01KUfBFL1Jem9KTTMn1_!!2568161054.jpg"}],"item_weight": "","item_size": "","location": "江苏南通","post_fee": "","express_fee": null,"ems_fee": "","shipping_to": "","has_discount": "false","video": {"url": null},"is_virtual": "","sample_id": "","is_promotion": "false","props_name": "31480:14306495906:几人坐:脚踏90*60*48cm;31480:14306495907:几人坐:双人165*95*67cm;31480:14306495908:几人坐:三人210*95*67cm;31480:14306495909:几人坐:单人100*95*67cm;31480:21480914361:几人坐:四人位240*95*67cm;31480:21480914362:几人坐:大四人320*95*76cm;31480:1387571900:几人坐:3米贵妃沙发;31480:32527954:几人坐:定制尺寸;1627207:28321:颜色分类:乳白色 尺寸颜色可定制","prop_imgs": {"prop_img": [{"properties": "1627207:28321","url": "//img.alicdn.com/imgextra/i1/2568161054/O1CN017GTZ4h1Jem9Qra1ap_!!2568161054.jpg"}]},"property_alias": "","props": [{"name": "品牌","value": "#0 工厂"},{"name": "型号","value": "520"},{"name": "材质","value": "木"},{"name": "木质材质","value": "松木"},{"name": "面料","value": "绒布"},{"name": "风格","value": "北欧"},{"name": "几人坐","value": "脚踏90*60*48cm,双人165*95*67cm,三人210*95*67cm,单人100*95*67cm,四人位240*95*67cm,大四人320*95*76cm,3米贵妃沙发,定制尺寸"},{"name": "颜色分类","value": "乳白色"},{"name": "填充物","value": "海绵"},{"name": "结构工艺","value": "木质工艺"},{"name": "是否可定制","value": "是"},{"name": "沙发组合形式","value": "U形"},{"name": "是否可拆洗","value": "是"},{"name": "适用对象","value": "成年人"},{"name": "是否带储物空间","value": "否"},{"name": "产地","value": "上海"},{"name": "地市","value": "上海市"},{"name": "区县","value": "奉贤区"},{"name": "是否组装","value": "否"},{"name": "出租车是否可运输","value": "否"},{"name": "填充物硬度","value": "软"},{"name": "款式定位","value": "经济型"}],"total_sold": "626","skus": {"sku": [{"price": "480","total_price": 0,"orginal_price": "480","properties": "31480:14306495906;1627207:28321","properties_name": "31480:14306495906:几人坐:脚踏90*60*48cm;1627207:28321:颜色分类:乳白色 尺寸颜色可定制","quantity": "200","sku_id": "4881047531343"},{"price": "1688","total_price": 0,"orginal_price": "1688","properties": "31480:14306495907;1627207:28321","properties_name": "31480:14306495907:几人坐:双人165*95*67cm;1627207:28321:颜色分类:乳白色 尺寸颜色可定制","quantity": "139","sku_id": "4881047531344"},{"price": "2088","total_price": 0,"orginal_price": "2088","properties": "31480:14306495908;1627207:28321","properties_name": "31480:14306495908:几人坐:三人210*95*67cm;1627207:28321:颜色分类:乳白色 尺寸颜色可定制","quantity": "200","sku_id": "4881047531345"},{"price": "968","total_price": 0,"orginal_price": "968","properties": "31480:14306495909;1627207:28321","properties_name": "31480:14306495909:几人坐:单人100*95*67cm;1627207:28321:颜色分类:乳白色 尺寸颜色可定制","quantity": "200","sku_id": "4881047531346"},{"price": "2388","total_price": 0,"orginal_price": "2388","properties": "31480:21480914361;1627207:28321","properties_name": "31480:21480914361:几人坐:四人位240*95*67cm;1627207:28321:颜色分类:乳白色 尺寸颜色可定制","quantity": "200","sku_id": "5039985183001"},{"price": "3188","total_price": 0,"orginal_price": "3188","properties": "31480:21480914362;1627207:28321","properties_name": "31480:21480914362:几人坐:大四人320*95*76cm;1627207:28321:颜色分类:乳白色 尺寸颜色可定制","quantity": "200","sku_id": "5039985183002"},{"price": "3400","total_price": 0,"orginal_price": "3400","properties": "31480:1387571900;1627207:28321","properties_name": "31480:1387571900:几人坐:3米贵妃沙发;1627207:28321:颜色分类:乳白色 尺寸颜色可定制","quantity": "200","sku_id": "5039984824000"},{"price": "3000","total_price": 0,"orginal_price": "3000","properties": "31480:32527954;1627207:28321","properties_name": "31480:32527954:几人坐:定制尺寸;1627207:28321:颜色分类:乳白色 尺寸颜色可定制","quantity": "200","sku_id": "5039985183003"}]},"seller_id": "2568161054","sales": 33,"shop_id": "567158267","props_list": {"31480:14306495906": "几人坐:脚踏90*60*48cm","31480:14306495907": "几人坐:双人165*95*67cm","31480:14306495908": "几人坐:三人210*95*67cm","31480:14306495909": "几人坐:单人100*95*67cm","31480:21480914361": "几人坐:四人位240*95*67cm","31480:21480914362": "几人坐:大四人320*95*76cm","31480:1387571900": "几人坐:3米贵妃沙发","31480:32527954": "几人坐:定制尺寸","1627207:28321": "颜色分类:乳白色 尺寸颜色可定制"},"seller_info": {"nick": "惜情yqq1127","item_score": "4.9 ","score_p": "4.9 ","delivery_score": "4.9 ","shop_type": "C","user_num_id": "2568161054","sid": "567158267","title": "现代布艺沙发","zhuy": "https://shop567158267.taobao.com/","shop_name": "现代布艺沙发"},"tmall": false,"error": "","warning": "","url_log": [],"fav_count": "7948","fans_count": "680","freight": "平邮: 快递包邮","props_imgs": {"prop_img": [{"properties": "1627207:28321","url": "//img.alicdn.com/imgextra/i1/2568161054/O1CN017GTZ4h1Jem9Qra1ap_!!2568161054.jpg"}]},"_ddf": "xdl","promo_type": null,"props_img": {"1627207:28321": "//img.alicdn.com/imgextra/i1/2568161054/O1CN017GTZ4h1Jem9Qra1ap_!!2568161054.jpg"},"format_check": "ok","shop_item": [],"relate_items": []},

步骤5:将获取的数据应用到您的应用程序

最后,我们需要将获取的数据应用到我们的应用程序中。 这可以通过使用从API响应中提取的数据来完成。

以下是一个完整调用OpenWeatherMap API并显示天气的Python脚本:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

import requests

import tkinter as tk

HEIGHT = 500

WIDTH = 600

def get_weather(city):

    url = "http://api.openweathermap.org/data/2.5/weather?q={}&appid={}"

    api_key = "{your_api_key}"

    response = requests.get(url.format(city, api_key))

    if response.status_code == 200:

        data = response.json()

        name = data['name']

        desc = data['weather'][0]['description']

        temp = data['main']['temp']

        humidity = data['main']['humidity']

        wind_speed = data['wind']['speed']

        label['text'] = 'City: %s

Conditions: %s

Temperature (Celsius): %s

Humidity: %s

Wind Speed(kmph): %s' % (name, desc, temp-273.15, humidity, wind_speed)

    else:

        label['text'] = 'Error fetching data from API'

def display_weather():

    city = city_entry.get()

    get_weather(city)

root = tk.Tk()

canvas = tk.Canvas(root, height=HEIGHT, width=WIDTH)

canvas.pack()

frame = tk.Frame(root, bg='#80c1ff', bd=5)

frame.place(relx=0.5, rely=0.1, relwidth=0.75, relheight=0.1, anchor='n')

city_entry = tk.Entry(frame, font=40)

city_entry.place(relwidth=0.65, relheight=1)

button = tk.Button(frame, text="Get Weather", font=40, command=display_weather)

button.place(relx=0.7, relheight=1, relwidth=0.3)

lower_frame = tk.Frame(root, bg='#80c1ff', bd=10)

lower_frame.place(relx=0.5, rely=0.3, relwidth=0.75, relheight=0.5, anchor='n')

label = tk.Label(lower_frame, font=('Courier', 18))

label.place(relwidth=1, relheight=1)

root.mainloop()

这个Python脚本使用TKinter库构建了一个简单的GUI,允许用户输入城市名称,然后在屏幕上显示有关该城市的天气数据。 这正是API调用的核心思想——与其他应用程序通信获取数据,然后在您的应用程序中使用它。

结论

在Python中,使用API获取数据非常简单。步骤包括注册并获得API密钥,安装requests模块,构建API请求,解析API响应和将数据用于您的应用程序中。通过调用API,您可以轻松获取任何您需要的数据, 并将其整合到您的Python应用程序中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/25739.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Spring Cloud 四】Ribbon负载均衡

Ribbon负载均衡 系列文章目录背景一、什么是Ribbon二、为什么要有Ribbon三、使用Ribbon进行负载均衡服务提供者A代码pom文件yml配置文件启动类controller 服务提供者Bpom文件yml配置文件启动类controller 服务消费者pom文件yml文件启动类controller 运行测试 四、Ribbon的负载均…

0140 数据链路层2

目录 3.数据链路层 3.6局域网 3.7广域网 3.8数据链路层设备 部分习题 3.数据链路层 3.6局域网 3.7广域网 3.8数据链路层设备 部分习题 1.如果使用5类UTP来设计一个覆盖范围为200m的10BASE-T以太网&#xff0c;需要采用的设备是&#xff08;&#xff09; A.放大器 …

Selenium入门详细教程+实例演示

目录 1.Selenium概述 1.1什么是Selenium 1.2Selenium的优势 1.3Selenium WebDriver原理 2.Selenium环境搭建 3.Selenium 简单示例 4.八大元素定位 4.1定位方式 4.2定位方式的用法 5.Selenium API 5.1WebDriver 常用 API 5.2WebElement 常用 API 5.3代码示例 6.元素等待机…

阿里云瑶池 PolarDB 开源官网焕新升级上线

导读近日&#xff0c;阿里云开源云原生数据库 PolarDB 官方网站全新升级上线。作为 PolarDB 开源项目与开发者、生态伙伴、用户沟通的平台&#xff0c;将以开放、共享、促进交流为宗旨&#xff0c;打造开放多元的环境&#xff0c;以实现共享共赢的目标。 立即体验全新官网&…

【华秋推荐】物联网入门学习模块 ESP8266

随着全球信息技术的不断进步和普及&#xff0c;物联网成为当今备受关注的技术热点之一。通过物理和数字设备之间的连接来实现自动化和互联互通的网络。无线传感器、云计算和大数据分析等技术&#xff0c;物联网使设备能够相互交流和共享信息&#xff0c;实现智能化的自动化操作…

.Net6 Core Web API 配置 log4net + MySQL

目录 一、导入NuGet 包 二、添加配置文件 log4net.config 三、创建MySQL表格 四、Program全局配置 五、帮助类编写 六、效果展示 小编没有使用依赖注入的方式。 一、导入NuGet 包 ---- log4net 基础包 ---- Microsoft.Extensions.Logging.Log4Net…

K8s集群安全机制

1.访问K8s集群的时候&#xff0c;需要经过三个步骤完成具体操作 &#xff08;1&#xff09;认证&#xff08;2&#xff09;鉴权&#xff08;授权&#xff09;&#xff08;3&#xff09;准入控制 进行访问的时候&#xff0c;过程中都要经过apiserver&#xff0c;apiserver做统…

Android中的Webview 加载优化

Android中的Webview 加载优化 在Android中&#xff0c;WebView是用于在应用中展示网页内容的组件。由于网页内容可能包含大量的资源和复杂的页面结构&#xff0c;WebView的加载性能优化至关重要&#xff0c;以提高网页加载速度、节省流量和提升用户体验。以下是一些常用的WebV…

Docker与DevOps的无敌组合,引爆你的创新潜能

&#x1f3c6;荣誉认证&#xff1a;51CTO博客专家博主、TOP红人、明日之星&#xff1b;阿里云开发者社区专家博主、技术博主、星级博主。 &#x1f4bb;微信公众号&#xff1a;iOS开发上架 &#x1f4cc;本文由iOS开发上架原创&#xff01; &#x1f389;欢迎关注&#x1f50e;…

【网络编程·传输层】UDP和TCP的报头

目录 一、端口号划分 二、部分指令 1、pidof&#xff08;用于查看进程id&#xff09; 2、netstat&#xff08;查看网络状态&#xff09; 三、UDP协议 1、UDP协议格式 2、UDP协议如何进行封装、解包、分用 2.1封装、解包 2.2分用 3、UDP协议的特点 3.1UDP协议的特点 …

C# 控制台彩色深度打印 工具类

文章目录 前言Nuget 环境安装代码使用打印结果 总结 前言 有时候我们想要靠打印获得程序信息&#xff0c;因为Dubeg模式需要一点一点断点进入进出&#xff0c;但是我们觉得断点运行实在是太慢了&#xff0c;还是直接打印后找结果会好一点。 Nuget 环境安装 想自己写的话可以看…

Android Studio API 33 获取当前连接的WIFI名称

常规流程失败流程 常规流程 以下内容在 API 33 成功实现&#xff0c;低版本API还请自行尝试&#xff08;仅推荐 API 29 - 33 用户食用&#xff09; 先&#xff08;至少&#xff09;添加以下权限到你的 AndroidManifest.xml 文件 <uses-permission android:name"andr…

试卷去手写内容在线擦除,使用这个方法轻松达成

在数字时代&#xff0c;越来越多的人开始使用电子设备来完成日常任务。即使在考试时&#xff0c;许多学生也选择使用电子设备来写答案&#xff0c;而不是在试卷上手写。然而&#xff0c;有时候我们需要手写答案&#xff0c;但当我们想要更改或者擦除时&#xff0c;这将是一个麻…

【ES】笔记-模板字符串(template string)是增强版的字符串`${expresions}`

模板字符串 传统的 JavaScript 语言&#xff0c;输出模板通常是这样写的&#xff08;下面使用了 jQuery 的方法&#xff09;。 $(#result).append(There are <b> basket.count </b> items in your basket, <em> basket.onSale </em> are on sal…

TypeScript 类型断言

TypeScript 类型断言 简单来说类型断言就是 使用as关键词 强行指定获取到的结果类型 应用场景 // 类型断言: 强行指定获取到的结果类型// 应用场景// 页面上有一个 id 为 link 的 a 标签// 我们知道它是 a 标签// 但是 TS 不知道 // document.getElementById 的返回值是 HTMLE…

区块链实验室(17) - FISCO BCOS的P2P网络层分析

首先启动FISCO BCOS的示例网络&#xff0c;即4个节点的强连通网络。每个节点与其余3个节点存在网络连接。 打开控制台&#xff0c;可以看到当前有21个区块。 其中1个节点的P2P端口是30301&#xff0c;监测这个节点的端口。 该端口的部分流量见下图所示。白底部分是某1秒钟接收到…

f12 CSS网页调试_css样式被划了黑线怎么办

我的问题是这样的 class加上去了,但是样式不生效,此时可能是样式被其他样式覆盖了, 解决方案就是 给颜色后边添加一个!important

IDEA中怎么使用git下载项目到本地,通过URL克隆项目(giteegithub)

点击 新建>来自版本控制的项目 点击后会弹出这样一个窗口 通过URL拉取项目代码 打开你要下载的项目仓库 克隆>复制 gitee github也是一样的 返回IDEA 将刚刚复制的URL粘贴进去选择合适的位置点击克隆 下载完成

Java方法重写

目录 1.什么是方法重写 2.方法重写的规则 3.重写与重载的区别 1.什么是方法重写 重写&#xff08;override&#xff0c;也称为覆盖&#xff09;&#xff1a;在子类中对父类中允许访问的方法的实现过程进行重新编写&#xff0c;子类中方法的名称、返回值类型、参数列表与父类…

Linux crontab命令:循环执行定时任务(详解)

crontab 命令的基本格式如下&#xff1a; [rootlocalhost ~]# crontab [选项] [file] file 指的是命令文件的名字&#xff0c;表示将 file 作为 crontab 的任务列表文件并载入 crontab&#xff0c;若在命令行中未指定文件名&#xff0c;则此命令将接受标准输入&#xff08;键盘…