分析和建模来自每个政治人物的popolo数据
everypolitician-popolo的Python项目详细描述
这是ruby gemeverypolitician-popolo的一个端口 Python。甚至这个自述文件都是基于gem的。
安装
您可以使用以下命令安装此软件包:
pip install everypolitician-popolo
用法
您可以从EveryPolitician手动下载popolo文件(尽管还有另一个 库(如果要自动执行此操作): See also: the everypolitician package)。
下面的示例使用Åland Lagting (这是奥兰群岛的立法机构,可用作 来自EveryPolitician page for Åland的json数据。
首先,需要使用库并从磁盘读取文件。
frompopolo_data.importerimportPopolopopolo=Popolo.from_filename('ep-popolo-v1.0.json')
每个政治人物使用的所有popolo类都已实现:
有为类上的每个属性定义的方法,例如 人员:
len(popolo.persons)# => 60person=popolo.persons.firstperson.id# => u'e3aab23e-a883-4763-be0d-92e5936024e2'person.name# => u'Aaltonen Carina'person.image# => u'http://www.lagtinget.ax/files/aaltonen_carina.jpg'person.wikidata# => u"Q4934081"
您还可以根据其 属性:
popolo.persons.get(name="Aaltonen Carina")# => <Person: Aaltonen Carina>popolo.organizations.filter(classification="party")# => [<Organization: Liberalerna>,# <Organization: Liberalerna på Åland r.f.>,# <Organization: Moderat Samling>,# <Organization: Moderat Samling på Åland r.f.>,# <Organization: Moderat samling>,# <Organization: Moderaterna på Åland>,# <Organization: Obunden Samling>,# <Organization: Obunden Samling på Åland>,# <Organization: Ålands Framtid>,# <Organization: Ålands Socialdemokrater>,# <Organization: Ålands framtid>,# <Organization: Ålands socialdemokrater>,# <Organization: Åländsk Center>,# <Organization: Åländsk Center r.f.>,# <Organization: Åländsk Demokrati>,# <Organization: Åländsk center>]
开发
签出repo后,使用以下命令安装依赖项:
pip install -r requirements.txt
然后可以使用以下命令运行测试:
tox
要发布新版本,请在 setup.py并将注释添加到描述 修复或新功能。
另请参见:Everypolician套餐
在上面的例子中,popolo数据来自 文件(ep-popolo-v1.0.json),即 可以从EveryPolitician website获取。但是你的ruby应用程序可以 还可以使用 everypolitician package, 所以根本不需要处理json文件。价值 从Legislature.popolo方法返回的是Popolo 对象,可以如上所述使用。例如,您可以 安装软件包时使用:
pip install everypolitician
然后按如下方式使用:
fromeverypoliticianimportEveryPoliticianaustralia=EveryPolitician().country('Australia')australia.code# => u'AU'senate=australia.legislature('Senate')senate.popolo().persons.get(name='Aden Ridgeway')# => <Person: Aden Ridgeway>
贡献
GitHub上欢迎错误报告和请求 <;https://github.com/everypolician/everypolician popolo python>;。
许可证
gem是根据MIT License的条款作为开放源码提供的。