kelbongoo网站的python包装器

kbg的Python项目详细描述


侏儒

PyKbg是围绕Kelbongoo网站的Python包装器

Kelbongoo是一家位于巴黎东部的公司, 法国它销售来自当地小生产者的产品(主要位于 Picardy),并且是生产者和 消费者(short food supply chain)。

安装

pip3 install kbg

这需要Python≥3.5

用法

使用Kbg类启动连接:

fromkbgimportKbgk=Kbg(your_email,your_password)print(k.logged_in())# True

一些常规终结点在没有连接的情况下可用:

fromkbgimportUnauthenticatedKbgk=UnauthenticatedKbg()print(k.logged_in())# False

Kbg

Kbg构造函数接受电子邮件和密码。它引发了一个例外 登录失败

Kbg拥有所有的端点,UnauthenticatedKbg还有以下端点:

logged_in()

返回一个布尔值,指示对象是否已成功连接。

get_customer_information()

dict的身份获取有关消费者的一些信息,包括第一个和最后一个 姓名、电子邮件、电话、电子邮件设置

get_customer_orders(page=1)

得到所有顾客的订单。这是一个分页端点。它返回一个带orders键的dict,以及一个countpagenext_page键,可以用来获取下一页(如果有的话)

get_all_customer_orders(full=False)

交出所有客户的订单。这是一个有用的包装 get_customer_order

如果full=True被传递,则对每个订单调用get_customer_order,以产生 全部信息

请注意,如果只需要产品的全名,请使用 get_store_offer_dicts作为查找映射而不是full=True来保存 不必要的请求。

get_customer_order(order_id)

获取有关特定订单(dict)的更多信息。

UnauthenticatedKbg

UnauthenticatedKbg构造函数不接受任何参数。

get_stores()

获取存储列表(listdict)。

get_store_availabilities(store_id)

在当前命令窗口的给定存储区获取产品可用性, 作为产品ID到单位计数的映射。

get_store_offer(store_id, force=False)

在给定的商店(dict)获得优惠。包括所有产品 以及它们的生产者、类别和系列(子类别)。

注意这个方法是缓存的;使用force=True来强制api调用。

get_store_offer_dicts(store_id, force=False)

相当于返回查找而不是列表的get_store_offer 项目的。

示例

创建一个简单的连接:

fromkbgimportKbgk=Kbg("your@email.com","yourpassword")

计算您的总支出

total_spent=0fororderink.get_all_customer_orders():forproductinorder["products"]:total_spent+=product["consumer_price"]# get a price in euros rather than centstotal_spent/=100print("You spent a total of %.2f€ at Kelbongoo!"%total_spent)

打印您购买最多的产品
fromcollectionsimportCountermy_store="BOR"top_products=Counter()top_producers=Counter()store_products=k.get_store_offer_dicts(my_store)["products"]fororderink.get_all_customer_orders():forproductinorder["products"]:product_id=product["id"]ifproduct_idinstore_products:product=store_products[product_id]top_products[product["product_name"]]+=1top_producers[product["producer_name"]]+=1print("Top products:")forproduct,nintop_products.most_common(5):print("%3d - %s"%(n,product))print("\nTop producers:")forproducer,nintop_producers.most_common(5):print("%3d - %s"%(n,producer))

查找您的啤酒覆盖范围

my_store="BOR"offer=k.get_store_offer(my_store)# Get the id of the family 'Bières' ("Beers")beer_family_id=Noneforfamilyinoffer["families"]:iffamily["name"]=="Bières":beer_family_id=family["id"]breakelse:raiseException("Can't find the beer family! :(")# Collect all products in that familybeers={}forproductinoffer["products"]:ifproduct["family_id"]==beer_family_id:beers[product["id"]]="%-40s (%s)"%(product["product_name"],product["producer_name"])known_beers=set()# Collect all *bought* products in that familyfororderink.get_all_customer_orders():forproductinorder["products"]:product_id=product["id"]ifproduct_idinbeers:known_beers.add(product_id)print("You have tasted %d beers out of %d."%(len(known_beers),len(beers)))iflen(known_beers)!=len(beers):print("Other beers you might want to try:")forbeer_id,beerinbeers.items():ifbeer_idnotinknown_beers:print("*",beer)

兼容性

这个库使用未记录的api端点,因此它可能随时中断。

注释

不要把kbg(kelbongoo)和KGB混为一谈。

Kelbongoo API使用第一个树字母将存储称为“locale” 在大写中,作为主键:BOR是borrégo,BIC是bichat,因为 例子。

价格以欧元美分为单位;你需要把它们除以100才能得到 欧元价格:"consumer_price": 221意味着它的价格是2.21欧元。

请限制您的请求,以尊重凯尔邦古的服务器。

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

推荐PyPI第三方库


热门话题
java希望直接扫描要上传到网页的文档   java JavaFX使对象可见,但不使用(忽略)点击   java LibGdx奇怪的纹理行为   java JavaFx ComboBox在第一次单击时未获得正确的值   api WebDav服务器库最好使用Java   java在Android中维护应用程序状态   java保存在Android中拖放RecyclerView后所做的更改我已经阅读了所有内容   无法读取项目中所需库tomcatembedwebsocket的java存档,或者该存档不是有效的ZIP文件   c#类在系统中有哪些关联?如何在UML中最好地表示它们?   java如何使用bazaar访问两台计算机上的同一文件夹   Java易失性与缓存一致性   java如何解决http11。校长:例外?   java liferaymavenplugin从maven Liferay 6.2.5(6.2 ga6)部署war   安卓的jar for java在哪里。木卫一。文件   java邻接矩阵中BFS的顺序是什么?   虚拟机如何从java启动linux虚拟机?   向DefaultListModel添加元素时java JList未更新   java JMSListener批注无法与REST服务一起使用   java DirectoryStream返回路径的顺序是什么?文件名,上次修改,文件大小?   java DropWizard Hibernate doc想说什么?