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

相关文章

  • 云计算+智能网络为数据中心保驾护航

    公有云服务的成功或者失败的关键在于:与企业内部数据中心提供的服务相比,它们是否能够提供相等或者更好的高水平性能、安全性和可靠性。 Gartner预测,在2013年,全球公有云计算市场将达到1310亿美元,而去年仅为1110亿美元。为了向市场提供所需的性能、安全性和可靠性,云服务供应商正在迅速建立虚拟化多数据中心服务架构,或者说“没有围墙的数据中心”。 云服务…

    云计算 2023年4月12日
    00
  • Python实现数据库并行读取和写入实例

    Python是一种流行的编程语言,广泛应用于数据处理,而数据库并行读取和写入是在进行大规模数据处理时必不可少的技术。本文将为大家介绍如何使用Python实现数据库并行读取和写入,以及两条示例说明。 1. 安装必要的库 在开始实现之前,我们需要安装Python中的必要库。在本次实现中,我们将使用以下库: psycopg2:用于操作PostgreSQL数据库; …

    云计算 2023年5月18日
    00
  • 源码解读jQ中浏览器兼容模块support第2/2页

    了解您的需求,针对该攻略,以下是详细讲解: 源码解读jQ中浏览器兼容模块support第2/2页 背景介绍 在开发网页时,我们经常需要根据不同浏览器的兼容性需求去针对不同浏览器进行适配,这个过程是比较繁琐的。为了解决这个问题,jquery库中提供了叫做支持模块的工具 – support模块。support模块可以检测浏览器是否支持某个指定功能,以此来解决浏览…

    云计算 2023年5月17日
    00
  • 24位腾讯云专家精彩演讲,4万字《腾讯云技术实践精选集 2021》发布!(附合集下载)

    摘要 随着创新技术的发展,数字经济也迎来了新的风口。新风口下,企业该如何进行云原生改造,实现成本优化?如何对基础架构和数据库技术进行创新,化解可用性、可靠性、高并发、性能、稳定性等难题? 腾讯云近期发布的《腾讯云技术实践精选集 2021》,旨在将过往积累的成功技术和解决方案经验,向外部技术同仁赋能输出,推动产业升级,促进业务创新。 听:技术专家真知灼见 《腾…

    云计算 2023年4月11日
    00
  • 云计算课程作业专业词汇

    一、虚拟化 虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。 虚拟化使用软件的方法重新定义划分IT资源,可以实现IT资源的动态分配、灵活调度、跨域共享,提高IT资源利用率,使IT资源能够真正成…

    云计算 2023年4月12日
    00
  • 阿里云计算公司总部效果图曝光 | 秦淮数据携手网宿科技缔造IDC新龙头

    每一个企业级的人  都置顶了 中国软件网 中国软件网  为你带来最新鲜的行业干货 小编点评 办公楼就像是一个企业的标志 小编在KPI完成不了的时候 就喜欢眺望一下远方的办公楼 点点星火 据说最近阿里又要建新办公楼啦 小编可以眺望的楼 马上又可以多一座啦! 星星眼期待中 ——来自喜欢看办公楼的小编 趋势洞察 贺建楠:加密将成为中国企业数据安全的标配 东进技术总…

    云计算 2023年4月12日
    00
  • 大数据应用开发流程

    通常将大数据应用开发分为五个步骤:获取、存储、处理、访问以及编制,获取是指获取一些辅助数据,例如来自CRM、生产数据(ODS)的数据,并将其加载入分布式系统(如Hadoop)为下一环节处理做准备。存储是指对分布式文件系统(GFS)或NoSQL分布式存储系统、数据格式)、压缩和数据模型的决策。处理是指将采集的原始数据导入到大数据管理系统,并将其转化为可用于分析…

    2023年4月10日
    00
  • SpringBoot项目集成Swagger和swagger-bootstrap-ui及常用注解解读

    下面是关于”SpringBoot项目集成Swagger和swagger-bootstrap-ui及常用注解解读”的完整攻略,包含两个示例说明。 简介 Swagger是一个用于设计、构建、文档化和使用RESTful Web服务的开源工具。它可以帮助我们快速地生成API文档,并提供了一个交互式的UI界面,方便我们测试API接口。Swagger-bootstrap…

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