一个python包装器,用于颜色爱好者api
colourlovers的Python项目详细描述
颜色爱好者API包装
api的python包装器 由www.colourlowers.com提供
要求
- python 3(检查elbaschid的 包装如果 使用python 2)
- 枕头
如何使用
导入包装器
通过pip下载包装:
PIP安装色彩爱好者
或者,通过键入终端来克隆存储库:
git clone
https://github.com/juangallostra/colourlovers api wrapper.git
在克隆
存储库
包装导入方式:
>>>fromcolourloversimportclapi>>>cl=clapi.ColourLovers()
通过pip下载包装: PIP安装色彩爱好者 或者,通过键入终端来克隆存储库: git clone https://github.com/juangallostra/colourlovers api wrapper.git
在克隆 存储库
包装导入方式:
>>>fromcolourloversimportclapi>>>cl=clapi.ColourLovers()
查询
一旦我们创建了api包装器对象( cl case)我们已经准备好查询api。注意一个查询,即使它 对于单个对象,总是返回一个列表。颜色爱好者API 查询分为三个层次:
查询的对象。可能的查询对象是:color/s, 图案、调色板、情人或统计。请注意,大多数对象 可以用复数或单数查询。包装提供了 每个对象的不同方法,都是:
>>>cl.search_palette()# Query for a single palette>>>cl.search_pattern()# Query for a single pattern>>>cl.search_color()# Query for a single color>>>cl.search_lover()# Query for a single user>>>cl.search_palettes()# Query for multiple palettes>>>cl.search_patterns()# Query for multiple patterns>>>cl.search_colors()# Query for multiple colors>>>cl.search_lovers()# Query for multiple users>>>cl.search_stats()# Query for a single pattern
这些方法都只接受关键字参数。可选地,a 可以传递第一个布尔位置参数,指定是否 查询的响应应作为原始数据或 python对象。默认情况下,查询的响应将返回为 一个python对象。因此,对api的查询的一般形式是:
>>>cl.search_patterns(True,kwargs)# Response will be returned as raw data>>>cl.search_patterns(kwargs)# Response will be returned as a Python object
我们稍后再讨论这个问题。
查询的类型。这些是一般的,通常不依赖于对象的类型。 但是,并非所有的类型都受所有对象的支持。可能 查询类型和用于为每种对象类型指定它们的关键字是:
<表> < COLGROUP > < COL/> < COL/> < COL/> 对象 关键字 值 < /广告> <正文> 调色板 请求 新的 , 顶部 , 随机的 模式 请求 新的 , 顶部 , 随机的 颜色 请求 新的 , 顶部 , 随机的 恋人 请求 新的 , 顶部 调色板 id 有效id为 int 或 str 模式 id 有效id为 int 或 str 颜色 十六进制值 有效的十六进制颜色值为 str 情人 用户名 有效用户名 str 统计 请求 颜色 , 调色板 , 图案 , 情侣 < > <表>随机查询类型是互斥的。使用时,没有其他 可以指定参数。有效查询的一些示例如下:
>>>cl.search_patterns(request='new')>>>cl.search_colors(request='top')>>>cl.search_stats(request='patterns')>>>cl.search_palettes(request='random')>>>cl.search_pattern(id=1145)>>>cl.search_lover(username='whatever')>>>cl.search_color(hexvalue='C6C5AC')
特定于对象的查询参数。这取决于 查询和也被指定为关键字参数。看看哪些是 每个对象支持的参数都遵循到 下表中的官方API页。请注意 查询多个对象或 单个对象。
<表> < COLGROUP > < COL/> < COL/> <广告> 对象 支持的类型 < /广告> <正文> 调色板 参数 模式 参数 颜色/s 参数 情人 参数 统计 参数 < > <表>有效查询的示例如下:
>>>cl.search_palettes(request='top',keywords='river',numResults=15)>>>cl.search_lovers(request='new',orderCol='numVotes')
注意,这些参数是区分大小写的,其中一些参数 需要预定义的值。这些边缘案例都列在 官方API文档
响应数据
查询中的数据可以以三种不同的格式返回:xml、json或as 一个python对象。
要获取XML格式的数据,必须有第一个位置参数( 原始数据 ) 设置为 真 。这是因为默认的原始数据响应格式是XML。
< Buff行情>>>>resp=cl.search_palette(True,id=2323)>>>resp'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n<palettes numResults="1" totalResults="4567661">\n\t<palette>\n\t\t<id>2323</id>\n\t\t<title><![CDATA[On the lake]]></title>\n\t\t<userName><![CDATA[viatora]]></userName>\n\t\t<numViews>529</numViews>\n\t\t<numVotes>12</numVotes>\n\t\t<numComments>3</numComments>\n\t\t<numHearts>0</numHearts>\n\t\t<rank>0</rank>\n\t\t<dateCreated>2005-08-24 10:44:11</dateCreated>\n\t\t<colors>\n\t\t\t<hex>E6F0F7</hex>\n\t\t\t<hex>97A4B2</hex>\n\t\t\t<hex>5F0609</hex>\n\t\t\t<hex>766F59</hex>\n\t\t\t<hex>989383</hex>\n\t\t</colors>\n\t\t<description><![CDATA[I-MOO\r\n<div style="width: 300px; text-align: center;"><a href="http://www.colourlovers.com/contests/moo/minicard/2291466" target="_blank" style="display: block; margin-bottom: 5px; width: 300px; height: 120px; -moz-box-shadow: 0 1px 4px #d1d1d1; -webkit-box-shadow: 0 1px 4px #d1d1d1; box-shadow: 0 1px 4px #d1d1d1; filter: progid:DXImageTransform.Microsoft.Shadow(Strength=1, Direction=180, Color=]]></description>\n\t\t<url><![CDATA[http://www.colourlovers.com/palette/2323/On_the_lake]]></url>\n\t\t<imageUrl><![CDATA[http://www.colourlovers.com/paletteImg/E6F0F7/97A4B2/5F0609/766F59/989383/On_the_lake.png]]></imageUrl>\n\t\t<badgeUrl><![CDATA[http://www.colourlovers.com/images/badges/p/2/2323_On_the_lake.png]]></badgeUrl>\n\t\t<apiUrl>http://www.colourlovers.com/api/palette/2323</apiUrl>\n\t</palette>\n</palettes>'
要获取json格式的数据,需要指定返回响应 作为原始数据,通过将第一个位置参数设置为 true ,有必要包括 查询中的另一个关键字参数,指定响应的格式应为 json( 格式='json' )。
< Buff行情>>>>resp=cl.search_palette(True,id=2323,format='json')>>>resp'[{"id":2323,"title":"On the lake","userName":"viatora","numViews":529,"numVotes":12,"numComments":3,"numHearts":0,"rank":0,"dateCreated":"2005-08-24 10:44:11","colors":["E6F0F7","97A4B2","5F0609","766F59","989383"],"description":"I-MOO\\r\\n<div style=\\"width:300px;text-align:center;\\"><a href=\\"http:\\/\\/www.colourlovers.com\\/contests\\/moo\\/minicard\\/2291466\\" target=\\"_blank\\" style=\\"display:block;margin-bottom:5px;width:300px;height:120px;-moz-box-shadow:01px4px#d1d1d1; -webkit-box-shadow: 0 1px 4px #d1d1d1; box-shadow: 0 1px 4px #d1d1d1; filter: progid:DXImageTransform.Microsoft.Shadow(Strength=1, Direction=180, Color=","url":"http:\\/\\/www.colourlovers.com\\/palette\\/2323\\/On_the_lake","imageUrl":"http:\\/\\/www.colourlovers.com\\/paletteImg\\/E6F0F7\\/97A4B2\\/5F0609\\/766F59\\/989383\\/On_the_lake.png","badgeUrl":"http:\\/\\/www.colourlovers.com\\/images\\/badges\\/p\\/2\\/2323_On_the_lake.png","apiUrl":"http:\\/\\/www.colourlovers.com\\/api\\/palette\\/2323"}]'
最后,如果参数raw data未设置或设置为 false ,则将获得数据 作为一个python对象(这是推荐的方法)。如果查询的响应包含超过 一个对象(例如,在查询选项板时),则响应中的每个对象都是 映射到python对象。最后,当响应数据作为python对象获得时 由于方法之间的一致性原因,即使响应包含 单个对象。
< Buff行情>>>>resp=cl.search_palette(id=2323)>>>resp[<colourlovers.data_containers.Paletteobjectat0x7fc64a87f0f0>]>>>resp=cl.search_palettes(request='top',keywords='river')>>>resp[<colourlovers.data_containers.Paletteobjectat0x7fc64a569ef0>,<colourlovers.data_containers.Paletteobjectat0x7fc64a569f28>,<colourlovers.data_containers.Paletteobjectat0x7fc64a569f60>,<colourlovers.data_containers.Paletteobjectat0x7fc64a569f98>,<colourlovers.data_containers.Paletteobjectat0x7fc64a569fd0>,<colourlovers.data_containers.Paletteobjectat0x7fc64a562048>,<colourlovers.data_containers.Paletteobjectat0x7fc64a562080>,<colourlovers.data_containers.Paletteobjectat0x7fc64a5620b8>,<colourlovers.data_containers.Paletteobjectat0x7fc64a5620f0>,<colourlovers.data_containers.Paletteobjectat0x7fc64a562128>,<colourlovers.data_containers.Paletteobjectat0x7fc64a562160>,<colourlovers.data_containers.Paletteobjectat0x7fc64a562198>,<colourlovers.data_containers.Paletteobjectat0x7fc64a5621d0>,<colourlovers.data_containers.Paletteobjectat0x7fc64a562208>,<colourlovers.data_containers.Paletteobjectat0x7fc64a562240>,<colourlovers.data_containers.Paletteobjectat0x7fc64a562278>,<colourlovers.data_containers.Paletteobjectat0x7fc64a5622b0>,<colourlovers.data_containers.Paletteobjectat0x7fc64a5622e8>,<colourlovers.data_containers.Paletteobjectat0x7fc64a562320>,<colourlovers.data_containers.Paletteobjectat0x7fc64a562358>]
每个对象(lover、palette、pattern、color、stats)都提供一个属性,名为pep8 样式指南-适用于每个T他在场回答。请参阅 API官方文档 查看每个对象的字段(示例结果部分)。例如:
< Buff行情>>>>p=cl.search_pattern(id=2323)>>>p[<colourlovers.data_containers.Patternobjectat0x7fcf64ae4a20>]>>>vars(p[0]){'id':2323,'title':'inspiration','username':'daisyjean911','num_views':328,'num_votes':0,'num_comments':0,'num_hearts':0,'rank':0,'date_created':'2007-12-10 12:19:14','description':'<a href="http://www.colourlovers.com/palette/2285499/Nestled" target="_blank"><img src="http://www.colourlovers.com/images/badges/pw/2285/2285499_Nestled.png" style="width: 240px; height: 120px; border: 0 none;" alt="Nestled" /></a>\r\n<div style="width: 300px; text-align: center;"><a href="http://www.colourlovers.com/contests/moo/minicard/2285499" target="_blank" style="display: block; margin-bottom: 5px; width: 300px; height: 120px; -moz-box-shadow: 0 1px 4px #d1d1d1; -webkit-box-shadow: 0 1px 4px #d1d1d1; box-shadow: 0 1px 4px #d1d1d1; filter: progid:DXImageTransform.Microsoft.Shadow(Strength=1, Direction=180, Color=','url':'http://www.colourlovers.com/pattern/2323/inspiration','image_url':'http://colourlovers.com.s3.amazonaws.com/images/patterns/2/2323.png','badge_url':'http://www.colourlovers.com/images/badges/n/2/2323_inspiration.png','api_url':'http://www.colourlovers.com/api/pattern/2323','colors':['97BEC9','AB2B91','76A379','ABD66B'],'rgb_colors':[(151,190,201),(171,43,145),(118,163,121),(171,214,107)],'num_colors':4}>>>pattern=p[0]>>>pattern.username'daisyjean911'>>>pattern.colors['97BEC9','AB2B91','76A379','ABD66B']>>>pattern.num_views328>>>pattern.id2323