Hướng dẫn what is api in python - api trong python là gì

Ngày 15 tháng 8 năm 2020

Hướng dẫn what is api in python - api trong python là gì

Trong hướng dẫn API Python này, chúng tôi sẽ học cách truy xuất dữ liệu cho các dự án khoa học dữ liệu. Có hàng triệu API trực tuyến cung cấp quyền truy cập vào dữ liệu. Các trang web như Reddit, Twitter và Facebook đều cung cấp một số dữ liệu nhất định thông qua API của họ.

Để sử dụng API, bạn yêu cầu đến một máy chủ web từ xa và truy xuất dữ liệu bạn cần.

Nhưng tại sao sử dụng API thay vì bộ dữ liệu CSV tĩnh bạn có thể tải xuống từ web? API rất hữu ích trong các trường hợp sau:

  • Dữ liệu đang thay đổi nhanh chóng. Một ví dụ về điều này là dữ liệu giá cổ phiếu. Nó không thực sự có ý nghĩa để tái tạo một bộ dữ liệu và tải xuống mỗi phút - điều này sẽ mất rất nhiều băng thông và khá chậm.. An example of this is stock price data. It doesn’t really make sense to regenerate a dataset and download it every minute — this will take a lot of bandwidth, and be pretty slow.
  • Bạn muốn một phần nhỏ của một bộ dữ liệu lớn hơn nhiều. Nhận xét Reddit là một ví dụ. Điều gì sẽ xảy ra nếu bạn muốn lấy ý kiến ​​của riêng mình về Reddit? Nó không có ý nghĩa gì khi tải xuống toàn bộ cơ sở dữ liệu Reddit, sau đó chỉ lọc các bình luận của riêng bạn.. Reddit comments are one example. What if you want to just pull your own comments on Reddit? It doesn’t make much sense to download the entire Reddit database, then filter just your own comments.
  • Có tính toán lặp đi lặp lại liên quan. Spotify có một API có thể cho bạn biết thể loại của một bản nhạc. Về mặt lý thuyết, bạn có thể tạo ra trình phân loại của riêng mình và sử dụng nó để tính toán các danh mục nhạc, nhưng bạn sẽ không bao giờ có nhiều dữ liệu như Spotify.. Spotify has an API that can tell you the genre of a piece of music. You could theoretically create your own classifier, and use it to compute music categories, but you’ll never have as much data as Spotify does.

Trong các trường hợp như các trường hợp ở trên, API là giải pháp phù hợp. Trong bài đăng trên blog này, chúng tôi sẽ truy vấn một API đơn giản để truy xuất dữ liệu về Trạm vũ trụ quốc tế (ISS).

Về hướng dẫn API Python này

Hướng dẫn này dựa trên một phần của khóa học tương tác của chúng tôi về API và webcraping trong Python, mà bạn có thể bắt đầu miễn phí.

Đối với hướng dẫn này, chúng tôi giả định rằng bạn biết một số nguyên tắc cơ bản của việc làm việc với dữ liệu trong Python. Nếu bạn don, bạn có thể muốn thử khóa học về nguyên tắc cơ bản miễn phí của chúng tôi.

Nếu bạn đang tìm kiếm một cái gì đó nâng cao hơn, hãy xem hướng dẫn API trung gian của chúng tôi.

API là gì?

API hoặc giao diện lập trình ứng dụng, là một máy chủ mà bạn có thể sử dụng để truy xuất và gửi dữ liệu để sử dụng mã. API được sử dụng phổ biến nhất để truy xuất dữ liệu và đó sẽ là trọng tâm của hướng dẫn mới bắt đầu này.

Khi chúng tôi muốn nhận dữ liệu từ API, chúng tôi cần đưa ra yêu cầu. Yêu cầu được sử dụng trên tất cả các trang web. Chẳng hạn, khi bạn truy cập bài đăng trên blog này, trình duyệt web của bạn đã đưa ra yêu cầu đến máy chủ web DataQuest, đã trả lời nội dung của trang web này.request. Requests are used all over the web. For instance, when you visited this blog post, your web browser made a request to the Dataquest web server, which responded with the content of this web page.

Yêu cầu API hoạt động chính xác theo cùng một cách - bạn đưa ra yêu cầu đến máy chủ API cho dữ liệu và nó đáp ứng yêu cầu của bạn.

Đưa ra yêu cầu API trong Python

Để làm việc với API trong Python, chúng tôi cần các công cụ sẽ thực hiện các yêu cầu đó. Trong Python, thư viện phổ biến nhất để thực hiện các yêu cầu và làm việc với API là thư viện yêu cầu. Thư viện yêu cầu không phải là một phần của thư viện Python tiêu chuẩn, vì vậy bạn sẽ cần cài đặt nó để bắt đầu.requests library. The requests library isn’t part of the standard Python library, so you’ll need to install it to get started.

Nếu bạn sử dụng PIP để quản lý các gói Python của mình, bạn có thể cài đặt các yêu cầu bằng lệnh sau:

pip install requests

Nếu bạn sử dụng Conda, lệnh mà bạn cần là:

conda install requests

Khi bạn đã cài đặt thư viện, bạn sẽ cần nhập nó. Hãy bắt đầu với bước quan trọng đó:

import requests

Bây giờ chúng tôi đã cài đặt và nhập thư viện yêu cầu, hãy để bắt đầu sử dụng nó.

Thực hiện yêu cầu API đầu tiên của chúng tôi

Có nhiều loại yêu cầu khác nhau. Một yêu cầu được sử dụng phổ biến nhất, được sử dụng để truy xuất dữ liệu. Bởi vì chúng tôi sẽ chỉ làm việc với dữ liệu truy xuất, trọng tâm của chúng tôi sẽ là thực hiện các yêu cầu nhận được.GET request, is used to retrieve data. Because we’ll just be working with retrieving data, our focus will be on making ‘get’ requests.

Khi chúng tôi đưa ra yêu cầu, phản hồi từ API đi kèm với mã phản hồi cho chúng tôi biết liệu yêu cầu của chúng tôi có thành công hay không. Mã phản hồi rất quan trọng vì họ ngay lập tức cho chúng tôi biết nếu có sự cố.response code which tells us whether our request was successful. Response codes are important because they immediately tell us if something went wrong.

Để thực hiện một yêu cầu nhận được, chúng tôi sẽ sử dụng hàm

import requests
1, yêu cầu một đối số - URL chúng tôi muốn đưa ra yêu cầu. Chúng tôi sẽ bắt đầu bằng cách đưa ra yêu cầu đến điểm cuối API không tồn tại, vì vậy chúng tôi có thể thấy mã phản hồi đó trông như thế nào.

response = requests.get("https://api.open-notify.org/this-api-doesnt-exist")

Hàm

import requests
2 trả về một đối tượng
import requests
3. Chúng tôi có thể sử dụng thuộc tính
import requests
4 để nhận mã trạng thái cho yêu cầu của chúng tôi:

print(response.status_code)
404

Mã trạng thái ‘404 có thể quen thuộc với bạn - đó là mã trạng thái mà máy chủ trả về nếu nó có thể tìm thấy tệp chúng tôi yêu cầu. Trong trường hợp này, chúng tôi đã yêu cầu

import requests
5 mà (bất ngờ, bất ngờ) đã tồn tại!

Hãy cùng tìm hiểu thêm một chút về mã trạng thái chung.

Mã trạng thái API

Mã trạng thái được trả về với mọi yêu cầu được thực hiện cho một máy chủ web. Mã trạng thái cho biết thông tin về những gì đã xảy ra với một yêu cầu. Dưới đây là một số mã có liên quan để nhận yêu cầu:

  • import requests
    6: Mọi thứ đều ổn, và kết quả đã được trả lại (nếu có).
  • import requests
    7: Máy chủ đang chuyển hướng bạn đến một điểm cuối khác. Điều này có thể xảy ra khi một công ty chuyển đổi tên miền hoặc tên điểm cuối được thay đổi.
  • import requests
    8: Máy chủ nghĩ rằng bạn đã đưa ra một yêu cầu xấu. Điều này có thể xảy ra khi bạn không gửi theo đúng dữ liệu, trong số những thứ khác.
  • import requests
    9: Máy chủ nghĩ rằng bạn không được xác thực. Nhiều API yêu cầu đăng nhập ccredentials, vì vậy điều này xảy ra khi bạn không gửi thông tin đăng nhập phù hợp để truy cập API.
  • response = requests.get("https://api.open-notify.org/this-api-doesnt-exist")
    0: Tài nguyên mà bạn đang cố gắng truy cập bị cấm: Bạn không có những người thích đúng đắn để xem nó.
  • response = requests.get("https://api.open-notify.org/this-api-doesnt-exist")
    1: Tài nguyên bạn đã cố gắng truy cập đã được tìm thấy trên máy chủ.
  • response = requests.get("https://api.open-notify.org/this-api-doesnt-exist")
    2: Máy chủ chưa sẵn sàng xử lý yêu cầu.

Bạn có thể nhận thấy rằng tất cả các mã trạng thái bắt đầu bằng một ‘4, chỉ ra một số lỗi. Số lượng mã trạng thái đầu tiên cho biết phân loại của chúng. Điều này rất hữu ích - bạn có thể biết rằng nếu mã trạng thái của bạn bắt đầu bằng ‘2, thì nó đã thành công và nếu nó bắt đầu bằng một‘ 4, hoặc ‘5, có một lỗi. Nếu bạn quan tâm, bạn có thể đọc thêm về mã trạng thái ở đây.

Tài liệu API

Để đảm bảo chúng tôi đưa ra một yêu cầu thành công, khi chúng tôi làm việc với API, điều quan trọng là tham khảo tài liệu. Tài liệu có vẻ đáng sợ lúc đầu, nhưng khi bạn sử dụng tài liệu ngày càng nhiều, bạn sẽ thấy nó dễ dàng hơn.

Chúng tôi sẽ làm việc với API thông báo mở, cho phép truy cập dữ liệu về Trạm vũ trụ quốc tế. Nó có một API tuyệt vời để học vì nó có thiết kế rất đơn giản và không yêu cầu xác thực. Chúng tôi sẽ dạy bạn cách sử dụng API yêu cầu xác thực trong một bài sau.

Thường thì sẽ có nhiều API có sẵn trên một máy chủ cụ thể. Mỗi API này thường được gọi là điểm cuối. Điểm cuối đầu tiên mà chúng tôi sẽ sử dụng là http://api.open-notify.org/astros.json, trả về dữ liệu về các phi hành gia hiện đang ở trong không gian.endpoints. The first endpoint we’ll use is http://api.open-notify.org/astros.json, which returns data about astronauts currently in space.

Nếu bạn nhấp vào liên kết ở trên để xem tài liệu cho điểm cuối này, bạn sẽ thấy rằng nó nói rằng API này không có đầu vào. Điều này làm cho nó một API đơn giản để chúng tôi bắt đầu. Chúng tôi sẽ bắt đầu bằng cách thực hiện yêu cầu nhận đến điểm cuối bằng thư viện yêu cầu:

response = requests.get("https://api.open-notify.org/astros.json")
print(response.status_code)
200

Chúng tôi đã nhận được một mã ‘200, cho chúng tôi biết yêu cầu của chúng tôi đã thành công. Tài liệu cho chúng tôi biết rằng phản hồi API mà chúng tôi sẽ nhận được ở định dạng JSON. Trong phần tiếp theo, chúng tôi sẽ tìm hiểu về JSON, nhưng trước tiên, hãy để sử dụng phương thức Phản hồi.json () để xem dữ liệu chúng tôi nhận được từ API:

print(response.json())
{'message': 'success', 'people': [{'name': 'Alexey Ovchinin', 'craft': 'ISS'}, {'name': 'Nick Hague', 'craft': 'ISS'}, {'name': 'Christina Koch', 'craft': 'ISS'}, {'name': 'Alexander Skvortsov', 'craft': 'ISS'}, {'name': 'Luca Parmitano', 'craft': 'ISS'}, {'name': 'Andrew Morgan', 'craft': 'ISS'}], 'number': 6}

Làm việc với dữ liệu JSON trong Python

JSON (ký hiệu đối tượng JavaScript) là ngôn ngữ của API. JSON là một cách để mã hóa các cấu trúc dữ liệu đảm bảo rằng chúng có thể dễ dàng đọc được bằng các máy. JSON là định dạng chính trong đó dữ liệu được chuyển qua lại cho API và hầu hết các máy chủ API sẽ gửi phản hồi của họ ở định dạng JSON.

Bạn có thể nhận thấy rằng đầu ra JSON mà chúng tôi nhận được từ API trông giống như nó chứa từ điển Python, danh sách, chuỗi và số nguyên. Bạn có thể nghĩ về JSON là sự kết hợp của các đối tượng này được thể hiện dưới dạng chuỗi. Hãy cùng xem một ví dụ đơn giản:

Python có hỗ trợ JSON tuyệt vời với gói

response = requests.get("https://api.open-notify.org/this-api-doesnt-exist")
3. Gói
response = requests.get("https://api.open-notify.org/this-api-doesnt-exist")
3 là một phần của thư viện tiêu chuẩn, vì vậy chúng tôi không phải cài đặt bất cứ thứ gì để sử dụng nó. Chúng tôi có thể chuyển đổi danh sách và từ điển cả thành JSON và chuyển đổi chuỗi thành danh sách và từ điển. Trong trường hợp dữ liệu Pass ISS của chúng tôi, nó là một từ điển được mã hóa thành một chuỗi ở định dạng JSON.

Thư viện JSON có hai chức năng chính:

  • response = requests.get("https://api.open-notify.org/this-api-doesnt-exist")
    5 - lấy một đối tượng Python và chuyển đổi (kết xuất) nó thành một chuỗi.
  • response = requests.get("https://api.open-notify.org/this-api-doesnt-exist")
    6 - lấy một chuỗi JSON và chuyển đổi (tải) nó thành một đối tượng Python.

Hàm

response = requests.get("https://api.open-notify.org/this-api-doesnt-exist")
7 đặc biệt hữu ích vì chúng ta có thể sử dụng nó để in một chuỗi được định dạng giúp dễ hiểu đầu ra JSON, như trong sơ đồ chúng ta đã thấy ở trên:

conda install requests
0
conda install requests
1

Ngay lập tức chúng ta có thể hiểu cấu trúc của dữ liệu dễ dàng hơn - chúng ta có thể thấy rằng họ là sáu người hiện đang ở trong không gian, với tên của họ hiện có là từ điển trong danh sách.

Nếu chúng tôi so sánh điều này với tài liệu cho điểm cuối, chúng tôi sẽ thấy rằng điều này phù hợp với đầu ra được chỉ định cho điểm cuối.

Sử dụng API với các tham số truy vấn

Http://api.open-notify.org/astros.json điểm cuối mà chúng tôi đã sử dụng trước đó không lấy bất kỳ tham số nào. Chúng tôi chỉ gửi yêu cầu GET và API gửi lại dữ liệu về số lượng người hiện đang ở trong không gian.

Tuy nhiên, nó rất phổ biến để có một điểm cuối API yêu cầu chúng tôi chỉ định các tham số. Một ví dụ về điều này https://api.open-notify.org/iss-pass.json Endpoint. Điểm cuối này cho chúng ta biết những lần tiếp theo rằng Trạm vũ trụ quốc tế sẽ đi qua một địa điểm nhất định trên trái đất.

Nếu chúng ta nhìn vào tài liệu, nó chỉ định các tham số

response = requests.get("https://api.open-notify.org/this-api-doesnt-exist")
8 (vĩ độ) và
response = requests.get("https://api.open-notify.org/this-api-doesnt-exist")
9 (kinh độ) cần thiết.

Chúng tôi có thể làm điều này bằng cách thêm một đối số từ khóa tùy chọn,

print(response.status_code)
0, vào yêu cầu của chúng tôi. Chúng ta có thể tạo một từ điển với các tham số này, và sau đó chuyển chúng vào hàm
print(response.status_code)
1. Ở đây, từ điển của chúng tôi sẽ trông như thế nào, sử dụng tọa độ cho thành phố New York:

conda install requests
2

Chúng tôi cũng có thể làm điều tương tự trực tiếp bằng cách thêm các tham số trực tiếp vào URL. Như thế này:

print(response.status_code)
2
print(response.status_code)
2

Nó hầu như luôn luôn thích thiết lập các tham số như một từ điển, bởi vì

print(response.status_code)
3 chăm sóc một số thứ xuất hiện, như định dạng đúng các tham số truy vấn và chúng tôi không cần phải lo lắng về việc chèn các giá trị vào chuỗi URL.

Hãy cùng đưa ra một yêu cầu bằng cách sử dụng các tọa độ này và xem chúng tôi nhận được phản hồi nào.

conda install requests
3
conda install requests
4

Hiểu thời gian vượt qua

Phản hồi JSON khớp với những gì tài liệu đã chỉ định:

  • Một từ điển có ba khóa
  • Khóa thứ ba,
    import requests
    3, chứa một danh sách thời gian vượt qua
  • Mỗi thời gian vượt qua là một từ điển với
    print(response.status_code)
    5 (thời gian bắt đầu vượt qua) và các khóa
    print(response.status_code)
    6.

Hãy để trích xuất thời gian vượt qua từ đối tượng JSON của chúng tôi:

conda install requests
5
conda install requests
6

Tiếp theo, chúng tôi sẽ sử dụng một vòng lặp để trích xuất chỉ năm & nbsp; ____ 45 & nbsp; giá trị:

conda install requests
7
conda install requests
8

Những thời điểm này rất khó hiểu - chúng ở định dạng được gọi là dấu thời gian hoặc kỷ nguyên. Về cơ bản, thời gian được đo bằng số giây kể từ ngày 1 tháng 1 năm 1970. Chúng ta có thể sử dụng phương pháp Python

print(response.status_code)
8 để chuyển đổi chúng thành thời gian dễ hiểu hơn:

conda install requests
9
import requests
0

Có vẻ như ISS thường xuyên đi qua thành phố New York - năm lần tiếp theo xảy ra trong khoảng thời gian bảy giờ!

Hướng dẫn API Python: Các bước tiếp theo

Trong hướng dẫn này, chúng tôi đã học được:

  • API là gì
  • Các loại yêu cầu và mã phản hồi
  • Cách thực hiện yêu cầu nhận
  • Cách đưa ra yêu cầu với các tham số
  • Cách hiển thị và trích xuất dữ liệu JSON từ API

Những bước cơ bản này sẽ giúp bạn bắt đầu làm việc với API. Hãy nhớ rằng khóa đó cho mỗi lần chúng tôi sử dụng API là đọc cẩn thận tài liệu API và sử dụng nó để hiểu yêu cầu nào sẽ thực hiện và những tham số nào sẽ cung cấp.

Bây giờ bạn đã hoàn thành hướng dẫn API Python của chúng tôi, bạn có thể muốn:

  • Hoàn thành API DataQuest tương tác của chúng tôi và khóa học cạo mà bạn có thể bắt đầu miễn phí.
  • Hãy thử làm việc với một số dữ liệu từ danh sách API công khai miễn phí này - chúng tôi khuyên bạn nên chọn API không yêu cầu xác thực như một bước đầu tiên tốt.
  • Hãy thử hướng dẫn API trung gian của chúng tôi, bao gồm xác thực API, phân trang và giới hạn tỷ lệ

Ví dụ API là gì?

API là các cơ chế cho phép hai thành phần phần mềm giao tiếp với nhau bằng cách sử dụng một bộ định nghĩa và giao thức. Ví dụ, hệ thống phần mềm của Cục thời tiết chứa dữ liệu thời tiết hàng ngày. Ứng dụng thời tiết trên điện thoại của bạn, nói chuyện với hệ thống này thông qua API và cho bạn xem các bản cập nhật thời tiết hàng ngày trên điện thoại của bạn.the weather bureau's software system contains daily weather data. The weather app on your phone “talks” to this system via APIs and shows you daily weather updates on your phone.

Có API cho Python không?

Quá trình thực hiện các yêu cầu cho API với Python thực sự rất đơn giản, bạn chỉ cần biết API bạn muốn giao tiếp. Trong Python, bạn chỉ cần một dòng mã duy nhất để thực hiện cuộc gọi API cơ bản, điều này được thực hiện với hàm yêu cầu get ().In Python you only need a single line of code to make a basic API call, this is done with the get() request function.

API có nghĩa là gì?

Tổng quan.API là viết tắt của giao diện lập trình ứng dụng, là một tập hợp các định nghĩa và giao thức để xây dựng và tích hợp phần mềm ứng dụng.

API được sử dụng để làm gì?

API là từ viết tắt của giao diện lập trình ứng dụng, là một trung gian phần mềm cho phép hai ứng dụng nói chuyện với nhau.Mỗi lần bạn sử dụng một ứng dụng như Facebook, gửi tin nhắn tức thì hoặc kiểm tra thời tiết trên điện thoại của bạn, bạn đang sử dụng API.