politylink common
1.0.0
pip install politylink
如果您使用的是politylink.nlp.keyphrase ,請執行以下程序:
pip install git+https://github.com/boudinfl/pke.git
python -m nltk.downloader stopwords
提供GraphQlClient以訪問PolityLink的GraphQl端點。
from politylink.graphql.client import GraphQLClient
client = GraphQLClient()
您可以使用exec方法執行任何GraphQl查詢。
query = """
query {
Bill(filter: {submittedDate: {year: 2020, month: 1, day: 20}}) {
name
}
}
"""
client.exec(query)
應以JSON格式獲得2020年1月20日提交的三項法案的姓名。
{'data': {'Bill': [{'name': '特定複合観光施設区域の整備の推進に関する法律及び特定複合観光施設区域整備法を廃止する法律案'},
{'name': '地方交付税法及び特別会計に関する法律の一部を改正する法律案'},
{'name': '平成三十年度歳入歳出の決算上の剰余金の処理の特例に関する法律案'}]}}
您還可以使用get_all_*方法將返回值作為Python類的實例而不是JSON檢索。例如, get_all_bills允許您檢索賬單作為賬單實例。
bills = client.get_all_bills(fields=['id', 'name'])
first_bill = bills[0]
print(f'{len(bills)}件の法律案を取得しました')
print(f'最初の法律案は「{first_bill.name}」({first_bill.id})です')
您應該獲得所有賬單的ID和名稱。返回值是一個帳單實例,因此您可以使用點訪問每個字段。
207件の法律案を取得しました
最初の法律案は「地方交付税法及び特別会計に関する法律の一部を改正する法律案」(Bill:s1QZfjoCPyfdXXbrplP3-A)です
您還可以通過將filter_作為參數來指定條件。有關更多詳細信息,請參見高級版本。
GraphQlClclient是SGQLC的包裝類,也可以在代碼中組裝查詢。例如,如果您為第一個exec示例組裝查詢,則看起來像這樣:
from politylink.graphql.schema import Query, _BillFilter, _Neo4jDateTimeInput
from sgqlc.operation import Operation
op = Operation(Query)
filter_ = _BillFilter(None)
filter_.submitted_date = _Neo4jDateTimeInput(year=2020, month=1, day=20)
bills = op.bill(filter=filter_)
bills.name()
client.exec(op)
組裝的Operation會自動轉換為字符串,因此可以將其直接傳遞給exec 。
您還可以將上面創建的過濾器_作為參數傳遞給get_all_*方法。
client.get_all_bills(fields=['name'], filter_=filter_)
前三個法案是作為法案實例獲得的。
[Bill(name='地方交付税法及び特別会計に関する法律の一部を改正する法律案'),
Bill(name='平成三十年度歳入歳出の決算上の剰余金の処理の特例に関する法律案'),
Bill(name='特定複合観光施設区域の整備の推進に関する法律及び特定複合観光施設区域整備法を廃止する法律案')]