基于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日

相关文章

  • 云计算对传统软件工程的影响

      随着互联网技术的飞速发展和普及,网络和计算基础设施的大量建设,分布式计算、集群管理、海量数据存储等相关理论和技术的成熟,从2006年概念的提出到现在,云计算仅用十年时间就以爆炸式地发展,广泛实现和应用于计算机科学和信息技术产业的诸多领域。其中,就包括软件开发行业的中流砥柱——软件工程。云计算对于计算和存储的崭新模式和强大能力给软件工程构建了不同以往的开发…

    2023年4月9日
    00
  • 在SAE(Sina App Engine)上部署WordPress站点的教程

    以下是在SAE上部署WordPress站点的教程: 准备工作 注册SAE账号:访问 SAE官网,注册账号并创建一个应用。 下载WordPress:访问 WordPress官网,下载最新版本的WordPress。 安装FTP客户端:推荐使用FileZilla,下载地址:https://filezilla-project.org/。 部署过程 将WordPres…

    云计算 2023年5月17日
    00
  • HASP多语言云计算开发框架白皮书

    HASP多语言云计算开发框架(Hypercloud-Active-Service-Platform)是目前最先进、最敏捷、高效的基于云计算操作系统的软件应用开发框架。它运行于Windows Azure平台,兼容C#、Java、PHP、ASP等多种语言和Web开发模式的敏捷开发框架,该框架可同时与.NET Framework 、ASP、JSP、FuelPHP、…

    云计算 2023年4月10日
    00
  • 浅谈pandas关于查看库或依赖库版本的API原理

    要想查看pandas库或其它Python库的版本,可以使用pandas库中提供的__version__属性或者pd.show_versions()方法。 对于使用属性__version__的方式,可以直接通过以下代码查看pandas的版本号: import pandas as pd print(pd.__version__) # 输出pandas库的版本号 …

    云计算 2023年5月18日
    00
  • 云计算模式:2021年的趋势是什么? – 金色小蜜蜂

    云计算模式:2021年的趋势是什么?   云计算模式:2021年的趋势是什么?   我们都知道云计算的优势。如果我们谈论未来,那么混合云,无服务器计算和容器等各种云计算趋势将在未来主导整个行业。   在未来几年中,行业专家预计云的使用将更加广泛。甚至全球云市场也有望达到更高的数字。根据CloudTech,公共云支出预计将从2019年的2290亿美元增长到20…

    云计算 2023年4月12日
    00
  • 产品化or平台化,你的云计算选择是什么?

    点击标题下「中国云报」可快速关注  你以为你以为的就是你以为的吗?云计算还真不是,至少不像被人们公认的那几个关键词所描述的样子。 1月18日,专注于企业专有云、混合云的ZStack获得了由阿里云领投的A轮投资。立刻有自媒体评论:ZStack的出现,将改变私有云市场,甚至是整个云计算市场。不管评论是否拔得太高,也不管ZStack现在是否具备这样的强大能力,ZS…

    云计算 2023年4月12日
    00
  • 云计算原理与实践

    《云计算原理与实践》 基本信息 作者: 游小明 罗光春 丛书名: 云计算技术系列丛书 出版社:机械工业出版社 ISBN:9787111419624 上架时间:2013-8-8 出版日期:2013 年8月 开本:16开 页码:1 版次:1-1 所属分类:计算机 > 电子商务与计算机文化 > 综合 更多关于》》》《云计算原理与实践》 内容简介 计算机…

    2023年4月10日
    00
  • (8)Amazon云计算核心技术之简单队列服务SQS

    SQS(Simple Queue Service) 简单队列服务是Amazon为解决云计算平台之间不同组件的通信专门设计开发的  1.SQS的基本模型: SQS由3个基本部分组成:系统组件(Component),队列(Queue),消息(Message) (1)系统组件 系统组件是SQS的服务对象,而SQS则是组件之间沟通的桥梁 组件既可以是消息的发送者,也…

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