基于Python编写一个ISBN查询工具

那么我们来详细讲解一下“基于Python编写一个ISBN查询工具”的完整攻略。

首先,我们需要了解ISBN的格式和查询方式。

ISBN全称为"International Standard Book Number",即国际标准书号。是由10个或13个数字组成的唯一标识符,用于标识一本书的出版社、作者、名称等信息。

我们可以通过不同的API接口来查询ISBN对应的书籍信息,其中比较常用的有OpenISBN和豆瓣读书API。

接下来,我们来说一下具体的操作步骤:

1. 确定使用的API接口和Python库

在本文中,我们将使用豆瓣读书API和Python的requests库和json库。

  1. 豆瓣读书API:https://developers.douban.com/wiki/?title=book_v2

  2. requests库:用于发送HTTP请求,获取API返回的数据。

  3. json库:用于处理API返回的JSON格式数据。

2. 构建查询函数

我们可以构建一个Python函数,用于输入ISBN号,查询豆瓣读书API返回的书籍信息。

import requests
import json

def query_book_info(isbn):
    url = "https://api.douban.com/v2/book/isbn/" + str(isbn)
    response = requests.get(url)
    json_data = json.loads(response.text)
    return json_data

上述代码通过requests库发送GET请求,获取豆瓣读书API返回的JSON数据,并使用json库将JSON格式数据转换为Python对象。

3. 错误处理

有时候,我们输入的ISBN是有误的,比如位数不够或者不符合ISBN规范等。这时,查询函数可能会返回错误信息。

我们可以使用try-except语句来捕获错误,并返回错误信息给用户。例如:

def query_book_info(isbn):
    url = "https://api.douban.com/v2/book/isbn/" + str(isbn)
    try:
        response = requests.get(url)
        json_data = json.loads(response.text)
    except:
        return {"error": "ISBN格式有误,请重新输入!"}
    return json_data

上述代码在try语句块中执行API调用操作,若出现异常则自动转到except语句块,返回错误信息。

4. 示例说明

我们来看下如何使用该函数进行查询。

例如,要查询ISBN号为9787115480354的书籍信息,我们可以执行以下代码:

isbn = "9787115480354"
book_info = query_book_info(isbn)
print(book_info)

执行结果如下:

{
  "rating": {
    "max": 10,
    "numRaters": 279,
    "average": "8.4",
    "min": 0
  },
  "subtitle": "Python函数式编程指南",
  "author": [
    "[英]David Mertz"
  ],
  "pubdate": "2016-11-1",
  "tags": [
    {
      "count": 71,
      "name": "Python",
      "title": "Python"
    },
    {
      "count": 25,
      "name": "函数式编程",
      "title": "函数式编程"
    },
    {
      "count": 18,
      "name": "编程",
      "title": "编程"
    }
  ],
  "origin_title": "Functional Programming in Python",
  "image": "https://img1.doubanio.com/view/subject/l/public/s29484863.jpg",
  "binding": "平装",
  "translator": [
    "尤晋元"
  ],
  "catalog": "封面\r\n 译前序\r\n 译者序\r\n 目录\r\n 内容简介\r\n 第1章 函数式编程基础\r\n 1.1 Python的函数式编程基础\r\n 1.2 函数式语言的元素\r\n 1.3 纯函数程序设计和执行\r\n 第2章 更进一步:拓展和函数化\r\n 2.1 哈希算法和特殊于Python的拓展\r\n 2.2 更加通用的函数:减少偏差的模式匹配和广义行为\r\n 2.3 元编程和元函数:使用Rando......",
  "ebook_url": "https://book.douban.com/subject/27028517/ebook",
  "pages": "368",
  "images": {
    "small": "https://img1.doubanio.com/view/subject/s/public/s29484863.jpg",
    "large": "https://img1.doubanio.com/view/subject/l/public/s29484863.jpg",
    "medium": "https://img1.doubanio.com/view/subject/m/public/s29484863.jpg"
  },
  "alt": "https://book.douban.com/subject/27028517/",
  "id": "27028517",
  "publisher": "人民邮电出版社",
  "isbn10": "7115480351",
  "isbn13": "9787115480354",
  "title": "Python函数式编程指南",
  "url": "https://api.douban.com/v2/book/27028517",
  "alt_title": "Functional Programming in Python",
  "author_intro": "David Mertz 是一位专业的 Python 程序员,也是一位从业 20 ...",
  "summary": "本书由写作程序员 David Mertz 编写,详细讲解了当前较为火热的函数式编程范式在 Python 编程中的应用。\nPython 自从继承 lambda calculus 以后已有十四年之久。这个并不广为人知的特征对于 Python 背后的思想、概念和编程模式影响巨大。”函数”是支持函数式编程范式的基础,也是 Python 语言原生支持的一种语言特性。函数式编程是 Python 编程中的重要主题。作为一种编程哲学,函数式编程倡导使用纯函数而非变量、循环和赋值语句等概......"
}

以上结果是豆瓣读书API返回的JSON数据,包含了书籍的详细信息,如书名、作者、出版社、出版日期、评分、标签、目录、书籍简介等信息。

我们也可以将查询函数封装到一个简单的命令行程序中,供用户通过命令行输入ISBN进行查询。

例如:

if __name__ == '__main__':
  isbn = input("请输入ISBN号:")
  book_info = query_book_info(isbn)
  print(book_info)

以上简单程序可以在命令行中输入ISBN号,然后调用查询函数查询书籍信息并输出到控制台。如下所示:

请输入ISBN号:9787115480354
{'subtitle': 'Python函数式编程指南', 'author': ['[英]David Mertz'], 'pubdate': '2016-11-1', 'tags': [{'count': 71, 'name': 'Python', 'title': 'Python'}, {'count': 25, 'name': '函数式编程', 'title': '函数式编程'}, {'count': 18, 'name': '编程', 'title': '编程'}], 'origin_title': 'Functional Programming in Python', 'image': 'https://img1.doubanio.com/view/subject/l/public/s29484863.jpg', 'binding': '平装', 'translator': ['尤晋元'], 'catalog': '封面\r\n 译前序\r\n 译者序\r\n 目录\......(中间省略)......'}

综上所述,以上是基于Python编写一个ISBN查询工具的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于Python编写一个ISBN查询工具 - Python技术站

(1)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • 一波低价日本VPS主机乱谈与推荐

    一波低价日本VPS主机乱谈与推荐 低价VPS主机的优缺点 低价VPS主机的优点:价格便宜,适合个人或小型团队使用,可以自己搭建网站或者进行二次开发。低价VPS主机的缺点:配置不高,硬件资源较少,安全性不高,维护需要自己解决等问题。 日本VPS主机的特点 日本VPS主机的特点:地理位置相对中国来说比较近,一般有千兆网络,可以适应对速度有比较高要求的用户。 推荐…

    云计算 2023年5月17日
    00
  • [AWS vs Azure] 云计算里AWS和Azure的探究(4)

    云计算里AWS和Azure的探究(4) ——Amazon EC2 和 Windows Azure Virtual Machine   接下来我们来看看Azure VM的创建。Azure里面虚拟机的创建跟AWS比就要简单许多了,配置的东西比较少,创建的过程也相对短一些。 创建虚拟机 首先进入Azure的Management Portal   点击下面的新建按钮…

    云计算 2023年4月11日
    00
  • 最佳案例 | QQ 相册云原生容器化之路

    关于我们 更多关于云原生的案例和知识,可关注同名【腾讯云原生】公众号~ 福利: ①公众号后台回复【手册】,可获得《腾讯云原生路线图手册》&《腾讯云原生最佳实践》~ ②公众号后台回复【系列】,可获得《15个系列100+篇超实用云原生原创干货合集》,包含Kubernetes 降本增效、K8s 性能优化实践、最佳实践等系列。 ③公众号后台回复【白皮书】,可…

    2023年4月9日
    00
  • 使用openstack部署云计算服务环境

    环境: 系统                      硬盘        IP            hostname redhat 7               sda 20G     192.168.0.70      openstack.com 64位                 sdb 20G    配置网卡 [root@openstack …

    2023年4月10日
    00
  • 云计算概述

    一 云计算定义 美国国家标准与技术研究院(NIST)定义:云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池(资源包括网络,服务器,存储、应用软件,服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互。 类似于生活中的水和电,按量来计算。 二 云计算的基本特征 1 按需自服务…

    云计算 2023年4月13日
    00
  • Next.js 在 Serverless 中从踩坑到破茧重生

    作者 杨苏博,偏后端的全栈开发,目前负责腾云扣钉的 Cloud Studio 产品。在团队中负责接技术架构设计与 Review、Cloud Studio 编辑器内核设计与开发、部分核心插件设计与开发;对 WebIDE 领域中的 VS Code 和 Theia IDE 有深入研究与丰富实践;多年 Serverless 领域从业经验,是 Serverless F…

    2023年4月9日
    00
  • 解读vue项目防范XSS攻击问题

    解读Vue项目防范XSS攻击问题 在Vue项目中,XSS攻击是一个常见的安全问题。本文将提供一个完整的攻略,包括什么是XSS攻击、如何防范XSS攻击、如何使用Vue.js防范XSS攻击等内容。 什么是XSS攻击 XSS(Cross-Site Scripting)攻击是一种常见的Web安全漏洞,攻击者通过在Web页面中注入恶意脚本,从而在用户浏览器中执行恶意代…

    云计算 2023年5月16日
    00
  • asp.net连接数据库 增加,修改,删除,查询代码

    在 ASP.NET 中,我们可以使用 ADO.NET 来连接数据库,并实现增加、修改、删除、查询等操作。本文将深入浅析 ASP.NET 连接数据库的方法,包括连接字符串的设置、增加、修改、删除、查询等操作的代码实现,以及两个示例说明。 连接字符串的设置 在 ASP.NET 中,我们需要设置连接字符串来连接数据库。连接字符串包含了连接数据库所需的信息,例如数据…

    云计算 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部