FSA食品警报API的python包装

food-alerts-wrapper的Python项目详细描述


食品安全局食品警报API Python包装

这是一个用于FSA Food Alerts API的Python包装器,其目的是使与API的交互更加简单,以便开发人员能够集中精力处理和分析它提供的数据。在

这个python3包装器是使用requests包创建的。它将HTTP请求的细节抽象出来,这样用户就可以与API数据进行交互。通过使用包装器,开发人员只需调用直观的函数,例如getAlerts()和{},就可以从API访问数据。在

这些函数还解析HTTP响应,因此用户可以简单地作为Python对象访问响应数据。在

示例

fromfoodAlertsAPIimportfoodAlertsAPIf=foodAlertsAPI()yearAgo=(datetime.now()-timedelta(days=365)).isoformat()alerts=f.getAlerts(yearAgo)allergenCounts=defaultdict(int)alert:Alert# type hinting for code completionforalertinalerts:allergens=alert.allergenLabels()forallergeninallergens:allergenCounts[allergen]+=1# get the 10 most frequently occurring allergenssortedAllergens=[(k,v)fork,vinsorted(allergenCounts.items(),key=lambdaitem:item[1],reverse=True)][:10]labels=[kfor(k,v)insortedAllergens]heights=[vfork,vinsortedAllergens]plt.bar(labels,heights,color="green")plt.xticks(rotation="vertical")plt.title("10 Most Common Allergens in the Past Year")plt.tight_layout()plt.show()

Allergens column chart

上面的例子描绘了过去一年警报中10种最常见的过敏原的柱状图。整个数据采集和解析只使用getAlerts()allergenLabels()完成,代码简洁易读。在

文件摘要

包装器中最重要的两个类是foodAlertsAPI和{}。下面是与这两个类相关的文档摘要。在

foodAlertsAPI

方法:

getAlert(ID)

根据其符号获取特定警报,例如(FSA-AA-01-2018)

参数

  • ID(字符串)–警报ID

返回

警报对象

加薪

ValueError–当提供的符号值无效时发生

getAlerts(quantifier=None, detailed=False, limit=None, offset=None, sortBy=None, filters={})

从FSA食品警报API获取警报

参数

  • quantifier–量词可以是int n,在这种情况下,函数返回最后n个警报。量词也可以是ISO格式的日期字符串,在这种情况下,函数返回自给定日期以来发布的警报

  • detailed(bool,可选)–确定返回的警报对象是否包含所有属性。当设置为false时,只包括摘要属性。如果未指定,则默认为False

  • limit(int,可选)–指定可返回的警报对象的最大数量

  • offset(int,可选)–返回以第n项开始的项列表,加上limit,这将允许分页处理一组较长的结果

  • sortBy(string,可选)–按给定属性(或属性链)的升序重新排列结果列表。要按降序排序,请使用sortBy=-prop。可以包含多个排序,在这种情况下,它们将按顺序应用

  • filters(dict,可选)–基于警报对象属性的过滤器,例如{“type”:“AA”}

返回

警报对象的列表

加薪

ValueError–当提供的限定符或可选参数的值无效时发生

searchAlerts(query, detailed=False, limit=None, offset=None, sortBy=None, filters={})

在FSA食品警报API的警报中搜索查询

参数

  • query(string)–搜索查询

  • detailed(bool,可选)–确定返回的警报对象是否包含所有属性。当设置为false时,只包括摘要属性。如果未指定,则默认为False

  • limit(int,可选)–指定可返回的警报对象的最大数量

  • offset(int,可选)–返回以第n项开始的项列表,加上limit,这将允许分页处理一组较长的结果

  • sortBy(string,可选)–按给定属性(或属性链)的升序重新排列结果列表。要按降序排序,请使用sortBy=-prop。可以包含多个排序,在这种情况下,它们将按顺序应用

  • filters(dict,可选)–基于al的过滤器ert对象属性,例如{“type”:“AA”}

返回

警报对象列表

加薪

ValueError–在为查询或可选参数提供无效值时发生

警报

方法:

id()

返回

(字符串)要在FSA页中发出警报的url,与alertURL属性相同。在

title()

返回

(字符串)警报标题

modified()

返回

(字符串)上次以ISO格式修改警报的日期时间

notation()

返回

(字符串)中使用的警报的唯一标识符foodAlertsAPI.foodAlertsAPI.foodAlertsAPIgetAlert()函数

type()

返回

(字符串)“AA”、“FAFA”或“PRIN”之一

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Thumbnailator库将图像转换为cmyk   Java反射从目录中的类运行测试   JavaEclipseJDT编译器说方法未定义,但EclipseIDE没有   重构如何重构一行重复的java代码   java Eclipse:使用删除线文本呈现自定义注释   java问题与ArrayList复制数据   java如何在swagger中传递访问令牌?   使用另一个java文件运行java文件时出错   java为什么谷歌云存储生成的上传链接在成功上传后不会失效?   java将我的客户端PC重定向到默认登录页面   java hibernate c3p0配置mysql问题   java和java之间的区别。尼奥。文件文件和java。伊奥。文件   列出java循环并向映射中添加值   java为什么OJ报告这段代码的运行时错误?