python入門第十四課:API的調用

2020-12-25 傫傫若遺

本教程使用的課本是《Python編程:從入門到實踐》,作者:[美] Eric Matthes

我們經常需要使用Python調用Web應用編程接口(API),大部分的API返回的都是易於處理的格式(如JSON或CSV),本節演示如何處理返回類型為JSON的API。

一、調用天氣API

比如需要獲取今天及後續幾天的天氣情況,我們可以調用天氣API,網上有很多接口,大家可以自己百度搜索。我們在瀏覽器輸入API的地址,返回了一串字符串。

這是一個JSON格式的字符串,為了方便查看,我們用notepad++進行格式化。需要安裝JSON Viewer插件,在「插件->插件管理」裡面可以找到這個插件。安裝後選擇「Show JSON Viewer」會展示左邊的樹狀結構,方便我們進行分析,點「Format JSON」後會將這段文字自動排版,便於我們分析內容。

我們要做的是用Python訪問這個連結,獲取返回結果,然後對結果進行分析,提取其中的天氣數據,代碼如下:

import requests# 執行API調用並存儲響應url = 'xxweather_mini?citykey=101010100'r = requests.get(url)print("Status code:", r.status_code)# 將API響應存儲在一個變量中response_dict = r.json()# 處理結果forecast = response_dict['data']['forecast']for item in forecast:print(item['date'],item['type'],item['low'],item['high'])

代碼說明:

1、調用API接口需要用到requests模塊,如果沒安裝,可以在CMD命令行下輸入如下命令進行安裝:

pip install --user requests

2、url參數就是我們要調用的API接口地址。

3、使用requests.get請求WEB地址,將相應回來的對象存儲在變量r中。

4、響應對象有一個status_code 的屬性,狀態碼200表示請求成功。

5、使用方法json() 將返回內容轉換為一個Python字典

6、通過response_dict['data']['forecast']找到forecast節點。

7、用for循環提取出天氣信息。

二、擴展

Request返回的對象有很多屬性,我們都可以列印出來看看。

r.encoding #獲取當前的編碼r.encoding = 'utf-8' #設置編碼r.text #以encoding解析返回內容。字符串方式的響應體,會自動根據響應頭部的字符編碼進行解碼。r.content #以字節形式(二進位)返回。字節方式的響應體,會自動為你解碼 gzip 和 deflate 壓縮。r.headers #以字典對象存儲伺服器響應頭,但是這個字典比較特殊,字典鍵不區分大小寫,若鍵不存在則返回Noner.status_code #響應狀態碼r.raw #返回原始響應體,也就是 urllib 的 response 對象,使用 r.raw.read()r.ok # 查看r.ok的布爾值便可以知道是否登陸成功#*特殊方法*#r.json() #Requests中內置的JSON解碼器,以json形式返回,前提返回的內容確保是json格式的,不然解析出錯會拋異常r.raise_for_status() #失敗請求(非200響應)拋出異常

本節介紹了如何用Python調用WEB應用編程接口(API),並對返回的數據進行解析。感謝您的耐心觀看!長按文末點讚送三連,支持本文作者多寫點~

#Python入門教程#

相關焦點

  • PySpark源碼解析,用Python調用高效Scala接口,搞定大規模數據分析
    同時,Python 語言的入門門檻也顯著低於 Scala。為此,Spark 推出了 PySpark,在 Spark 框架上提供一套 Python 的接口,方便廣大數據科學家使用。.*")java_import(gateway.jvm,"org.apache.spark.api.python.*")java_import(gateway.jvm,"org.apache.spark.ml.python.*")java_import(gateway.jvm,"org.apache.spark.mllib.api.python.*")#TODO(davies):moveintosqljava_import
  • 【PySpark源碼解析】教你用Python調用高效Scala接口
    同時,Python 語言的入門門檻也顯著低於 Scala。為此,Spark 推出了 PySpark,在 Spark 框架上提供一套 Python 的接口,方便廣大數據科學家使用。.*")java_import(gateway.jvm, "org.apache.spark.api.python.*")java_import(gateway.jvm, "org.apache.spark.ml.python.*")java_import(gateway.jvm, "org.apache.spark.mllib.api.python.*")# TODO
  • 如何在Stata16中調用Python
    當然更複雜的是兩者間相互調用,一方的執行結果決定了另一方的執行內容,反之亦然。sfi的文檔在以下地址中:https://www.stata.com/python/api16/從功能(而非模塊)上梳理SFI的命令,主要包括以下4類:創建數據表的命令,主要包括設置樣本量和添加變量,形式上以add開頭將Stata數據轉化為Python數據的命令,形式上以get開頭將Python數據轉化為Stata數據的命令,形式上以
  • PySpark源碼解析,教你用Python調用高效Scala接口,搞定大規模數據分析
    同時,Python 語言的入門門檻也顯著低於 Scala。為此,Spark 推出了 PySpark,在 Spark 框架上提供一套 Python 的接口,方便廣大數據科學家使用。當通過 spark-submit 提交一個 PySpark 的 Python 腳本時,Driver 端會直接運行這個 Python 腳本,並從 Python 中啟動 JVM;而在 Python 中調用的 RDD 或者 DataFrame 的操作,會通過 Py4j 調用到 Java 的接口。
  • python入門第十三課:文件的讀寫與分析介紹,異常處理和代碼重構
    ##本教程使用的課本是《Python編程:從入門到實踐》,作者:[美] Eric Matthes學完前面十二節課,已完成Python編程入門了,我們已經能編寫組織有序而易於使用的Python程序了。接來下繼續學習更多應用操作,比如文件操作、數據存儲、異常處理等,這些技巧能讓我們快速的處理大量的數據,讓程序更加健壯。
  • 十六本python入門學習書籍推薦,python入門新手必看
    隨著人工智慧時代的到來,python程式語言一步登天衝到編程排行榜第一名,因此更多朋友想轉行學習python程式語言的朋友,可以一起看一下:python入門新手必看的十六本python入門學習書籍1、python基礎教程司維所著圖書:本書包括Python程序設計的方方面面,首先從Python
  • 正確的使用python調用shell的姿勢
    python是一門簡潔靈活的語言,也是一門膠水語言,能與很多其他的程式語言進行交互,雖然性能差一點,但易用,入門和上手都比較簡單,所以一直以來都被使用廣泛
  • python入門第十六課:解析CSV文件
    本教程使用的課本是《Python編程:從入門到實踐》,作者:[美] Eric MatthesCSV文件是一種特殊的文本文件,文件中的數據以逗號作為分隔符,很適合進行數據的解析,應用在很多場景,本文以如下CSV文件為例,說明如何利用Python進行數據的解析。
  • python入門第十四課:批量清除文件中的幹擾字符
    本教程使用的課本是《Python編程:從入門到實踐》,作者:[美] Eric Matthes相信很多人有批量處理文本內容的需求,比如從網上下載了很多文本文件,但裡面有些文字需要去除,用Python的OS類可以輕鬆實現。
  • python 函數定義以及函數的調用
    參數的調用:位置參數關鍵字參數3. 在python中參數無類型,參數可以接受任意對象,只有函數中代碼才會對參數類型有限制4.>print(x)print(y)func(1)func(1, 2)第三種 不定長參數(動態參數):def func(*args, **kwargs):
  • Python視頻教程網課編程零基礎入門數據分析網絡爬蟲全套Python...
    因篇幅有限,以下展示的只是課程裡部分內容如對python課程有更多疑問 請諮詢客服 1零基礎入門全能班 01 –python簡介 02 第一個程序 03-python執行方式和pycharm設置 04-程序的注釋和算術運算符 05 程序執行原理 06變量的使用以及類型 07
  • python中調用MATLAB程序
    上次寫了MATLAB和Python的互聯以及MATLAB中調用python程序,今天講解python中調用MATLAB程序。
  • 雙劍合璧,Python調用C代碼
    在本文中,我們將用C語言實現一個Python模塊,並在Python代碼中對其進行調用。setup.py build python setup.py install我們會得到類似下面的輸出:$ python3.6 setup.py buildrunning buildrunning build_ext
  • Python——用 Django 寫 restful api 接口
    但目前在 python3.x 中,PyMySQL 取代了 MySQLdb。創建更改的文件python manage.py makemigrations# 2.@api_view 裝飾器,基於方法的視圖。繼承 APIView 類,基於類的視圖。
  • Python入門基礎中怎麼定義函數,函數調用,函數傳遞參數
    函數沒有調用的時候,它不會自己執行的。比如你去購物網站買東西,網站沒有用函數。你打開他們的首頁,然後後臺的代碼從上往下執行。一個項目中有多少功能,多少代碼量。當打開首頁需要話費5分鐘,搜索商品又要花費 5分鐘,你以後肯定不去這個網站購物了。本來網站首頁只需要調用一個函數就可以了,搜索商品頁面也是一個函數。這樣兩個頁面前後打開加起來也就幾秒的事。
  • rPython:在R語言中調用python命令
    經常使用Python和R語言的人都知道,如果R中有某些功能Python不容易實現時,則可以安裝加載rpy2包,從而實現在python中調用R語言命令的功能
  • 小白也能懂的python爬蟲入門案例
    此文屬於入門級級別的爬蟲,老司機們就不用看了。本次主要是爬取網易新聞,包括新聞標題、作者、來源、發布時間、新聞正文。首先我們打開163的網站,我們隨意選擇一個分類,這裡我選的分類是國內新聞。也就是通過api接口獲取的數據。那麼確認了之後可以使用F12打開谷歌瀏覽器的控制臺,點擊 Network,我們一直往下拉,發現右側出現了:"… special/00804KVA/cm_guonei_03.js? … "之類的地址,點開Response發現正是我們要找的api接口。
  • Python 圖像處理 OpenCV (1):入門
    opencv-python 是只包含了主要模塊的包,而 opencv-contrib-python 包含了主要模塊以及一些擴展模塊,帶一些收費或者專利的算法,還有一些比較新的算法的高級版本。安裝的時候選擇自己喜歡的版本裝就好了,命令如下:# opencv-python 安裝命令pip install opencv-python# opencv-contrib-pythonpip install opencv-contrib-python安裝完成後可以通過以下代碼查看安裝的版本信息:
  • python--調用函數
    對無參函數調用時則無實際參數表。實際參數表中的參數可以是常數、變量或其它構造類型數據及表達式。各實參之間用逗號分隔。Python內置了很多有用的函數,我們可以直接調用。要調用一個函數,需要知道函數的名稱和參數,比如求絕對值的函數abs,只有一個參數。
  • 10個Python爬蟲入門實例
    來源:cnblogs.com/h3zh1/p/12548946.html昨天帶夥伴們學習python