orcid api上的python包装器
orcid的Python项目详细描述
蟒蛇orcid图片::https://badges.gitter.im/orcid/python orcid.svg
:alt:加入聊天,网址:https://gitter.im/orcid/python orcid
:target:https://gitter.im/orcid/python-orcid?联合技术手册来源=徽章和联合技术手册媒介=徽章和联合技术手册活动=公关徽章和联合技术手册内容=徽章
…图片::https://img.shields.io/travis/orcid/python-orcid.svg?style=flat square
:目标:https://travis ci.org/orcid/python orcid
…图片::https://img.shields.io/covertalls/orcid/python-orcid.svg?style=flat square
:目标:https://coveralls.io/r/orcid/python-orcid?分支=主
…图片::https://img.shields.io/pypi/l/orcid.svg?style=flat square
:目标:https://pypi.python.org/pypi/orcid/
…图片::https://img.shields.io/badge/status-beta-red.svg?style=flat square
:目标:https://pypi.python.org/pypi/orcid/
----
mateusz susik<;mateuszsusik@gmail.com>;
代码块:bash
pip install orcid
notes
--
此自述文件可能有些过时。您可以通过提交拉取请求来提供帮助。
异常处理
----
此库的方法可能会引发客户端或服务器错误。一个错误是
来自已验证的
`requests<;http://docs.python requests.org/en/latest/>;``库的异常。与他们合作的通常方式应该是:
。代码块::python
from requests import requestexception
import orcid
api=orcid.memberapi(key,secret,sandbox=true)
try:
api.add廑record(author orcid,token,'work',
{title':'title',type':'art performance'})
#这里应该处理这个错误。由于异常消息可能
过于泛化,可以通过以下方式获取附加信息:
print(e.response.text)
响应是请求-响应实例。
简介尝试唯一的研究者标识符,以及将研究活动和输出与这些标识符联系起来的透明方法。orcid在跨学科、跨研究领域、跨国界以及与其他标识符系统的合作方面是独一无二的。
orcid提供了一个api(应用程序编程接口),允许您的
系统和应用程序连接到orcid注册表,包括从o读取
和向o写入rcid记录。
有两种类型的api可供开发人员使用。
==
publicapi允许开发人员使用搜索引擎并读取author
记录。要使用它,您需要传递机构的密钥和机密。
令牌来自oauth 3-legged授权。您可以使用
此库(下面的示例)执行授权。
但是,如果用户已连接到orcid并经过身份验证(因此您有一个授权代码),则可以简化此过程:
。代码块::python
import orcid
api=orcid.publicapi(机构密钥,机构密钥,沙盒=true)
token=api.get_token_from_authorization_code(授权代码,
redirect_uri)
特殊情况是执行搜索查询的令牌。此类查询不需要用户身份验证,只需要机构凭据。代码块:python
import orcid
api=orcid.publicapi(机构密钥,机构_ secret,sandbox=true)
search_token=api.get_search_token_from_orcid()
代码块::python
import orcid
api=orcid.publicapi(机构密钥,机构密钥,沙盒=true)
search\u results=api.search('text:english,access\u token=token)
创建搜索查询时,可以使用
中的生成器来减少获取记录所需的时间。
…代码块::python
search_results=api.search_generator('text:english',
pagination=20)
first_result=next(search_results)
代码块::python
import orcid
api=orcid.publicapi(机构密钥,机构密钥,沙盒=true)
search_results=api.search_public('text:english')
pi.read_record_public('0000-0001-1111-1111','activities',
标记)
summary=api.read_record_public('0000-0001-1111-1111','record',
标记)
summary字典中的每个记录都应包含*输入代码*。使用
它们,可以查询特定记录以获取详细信息。需要提供
记录的类型和输入代码。代码块::python
通过在列表中选择多个"放置代码",可以同时获取多个选定的作品。代码块::python
work=api.read_record_public('0000-0001-1111-1111','works',token,
['1111','2222','3333'])
其他实用程序
----
代码块::python
url=api.get_login_url('/authenticate',redirect_uri,email=email)
=OAuth三条腿的授权过程。
成员API允许开发人员在使用
搜索API或获取记录时获取更多信息。
若要创建成员API处理程序的实例,必须提供机构密钥和
机构机密。
…代码块::python
import orcid
api=orcid.memberapi(机构密钥,机构密钥,
sandbox=true)
search\u results=api.search('text:english')
ri,
'/read limited')
summary=api.read_record_member('0000-0001-1111-1111','activities',
token)
成员api中提供了来自公共api的所有方法。
/>
如果作者的orcid未知,则可以通过授权
用户:
代码块::python
orcid=api.get_user_orcid(user_id,password,redirect_uri)
支持。
…代码块::python
put_code=api.add_record(author orcid,token,'work',json)
#将类型更改为"other"
api.update_record(author orcid,token,'work',put code,
{type':'other'})
api.remove_record(author orcid,token,'work',put code)
最后一个参数是记录本身。记录应该遵循orcid的json记录定义。下面是一个可以作为参数传递的字典示例:
…代码块::python
{
"title":{
"title":{
"value":"work"1"
},
"subtitle":null,
"translated title":null
},
"journal title":{
"value":"journal"1"
},
"short description":空,
"type":"日志文章",
"外部id":{
"外部id":[{
"外部id type":"doi",
"外部id value":"ext-id-1",
"外部id url":{
"value":"http://dx.doi.org/ext-id-1"
"},
"外部id关系":"self"
}
}
}
如果您不知道如何构造json,请访问
"orcid swagger<;https://api.orcid.org/v2.0>;`
可以同时更新许多作品!
us``works``请求类型并传递这样的json:
…代码块::python
"bulk":[
{
"work":{
"title":{
"title":{
"value":"work 1"
},
},
"journal title":{
"value":"journal 1"
},
"type":"journal article",
"e外部id"{
"外部id":[{
"外部id type":"doi",
"外部id value":"ext-id-1",
"外部id url":{
"value":"http://dx.doi.org/ext-id-1"
},
"外部id relationship":"self"
"}]
}
}
},
{
"work":{
"title":{
"title":{
"value":"work"2"
},
},
"journal title":{
"value":"journal"2"
},
"type":"journal"article,
"extern"al-id"{
"外部id":[{
"外部id type":"doi",
"外部id value":"ext-id-2",
"外部id url":{
"value":"http://dx.doi.org/ext-id-2"
},
"外部id relationship":"self"
}"
}
}
}
}
]
:alt:加入聊天,网址:https://gitter.im/orcid/python orcid
:target:https://gitter.im/orcid/python-orcid?联合技术手册来源=徽章和联合技术手册媒介=徽章和联合技术手册活动=公关徽章和联合技术手册内容=徽章
…图片::https://img.shields.io/travis/orcid/python-orcid.svg?style=flat square
:目标:https://travis ci.org/orcid/python orcid
…图片::https://img.shields.io/covertalls/orcid/python-orcid.svg?style=flat square
:目标:https://coveralls.io/r/orcid/python-orcid?分支=主
…图片::https://img.shields.io/pypi/l/orcid.svg?style=flat square
:目标:https://pypi.python.org/pypi/orcid/
…图片::https://img.shields.io/badge/status-beta-red.svg?style=flat square
:目标:https://pypi.python.org/pypi/orcid/
----
mateusz susik<;mateuszsusik@gmail.com>;
代码块:bash
pip install orcid
notes
--
此自述文件可能有些过时。您可以通过提交拉取请求来提供帮助。
异常处理
----
此库的方法可能会引发客户端或服务器错误。一个错误是
来自已验证的
`requests<;http://docs.python requests.org/en/latest/>;``库的异常。与他们合作的通常方式应该是:
。代码块::python
from requests import requestexception
import orcid
api=orcid.memberapi(key,secret,sandbox=true)
try:
api.add廑record(author orcid,token,'work',
{title':'title',type':'art performance'})
#这里应该处理这个错误。由于异常消息可能
过于泛化,可以通过以下方式获取附加信息:
print(e.response.text)
响应是请求-响应实例。
简介尝试唯一的研究者标识符,以及将研究活动和输出与这些标识符联系起来的透明方法。orcid在跨学科、跨研究领域、跨国界以及与其他标识符系统的合作方面是独一无二的。
orcid提供了一个api(应用程序编程接口),允许您的
系统和应用程序连接到orcid注册表,包括从o读取
和向o写入rcid记录。
有两种类型的api可供开发人员使用。
publicapi允许开发人员使用搜索引擎并读取author
记录。要使用它,您需要传递机构的密钥和机密。
令牌来自oauth 3-legged授权。您可以使用
此库(下面的示例)执行授权。
但是,如果用户已连接到orcid并经过身份验证(因此您有一个授权代码),则可以简化此过程:
。代码块::python
import orcid
api=orcid.publicapi(机构密钥,机构密钥,沙盒=true)
token=api.get_token_from_authorization_code(授权代码,
redirect_uri)
特殊情况是执行搜索查询的令牌。此类查询不需要用户身份验证,只需要机构凭据。代码块:python
import orcid
api=orcid.publicapi(机构密钥,机构_ secret,sandbox=true)
search_token=api.get_search_token_from_orcid()
代码块::python
import orcid
api=orcid.publicapi(机构密钥,机构密钥,沙盒=true)
search\u results=api.search('text:english,access\u token=token)
创建搜索查询时,可以使用
中的生成器来减少获取记录所需的时间。
…代码块::python
search_results=api.search_generator('text:english',
pagination=20)
first_result=next(search_results)
代码块::python
import orcid
api=orcid.publicapi(机构密钥,机构密钥,沙盒=true)
search_results=api.search_public('text:english')
pi.read_record_public('0000-0001-1111-1111','activities',
标记)
summary=api.read_record_public('0000-0001-1111-1111','record',
标记)
summary字典中的每个记录都应包含*输入代码*。使用
它们,可以查询特定记录以获取详细信息。需要提供
记录的类型和输入代码。代码块::python
通过在列表中选择多个"放置代码",可以同时获取多个选定的作品。代码块::python
work=api.read_record_public('0000-0001-1111-1111','works',token,
['1111','2222','3333'])
其他实用程序
----
url=api.get_login_url('/authenticate',redirect_uri,email=email)
成员API允许开发人员在使用
搜索API或获取记录时获取更多信息。
若要创建成员API处理程序的实例,必须提供机构密钥和
机构机密。
…代码块::python
import orcid
api=orcid.memberapi(机构密钥,机构密钥,
sandbox=true)
search\u results=api.search('text:english')
ri,
'/read limited')
summary=api.read_record_member('0000-0001-1111-1111','activities',
token)
成员api中提供了来自公共api的所有方法。
/>
如果作者的orcid未知,则可以通过授权
用户:
代码块::python
orcid=api.get_user_orcid(user_id,password,redirect_uri)
支持。
…代码块::python
put_code=api.add_record(author orcid,token,'work',json)
#将类型更改为"other"
api.update_record(author orcid,token,'work',put code,
{type':'other'})
api.remove_record(author orcid,token,'work',put code)
最后一个参数是记录本身。记录应该遵循orcid的json记录定义。下面是一个可以作为参数传递的字典示例:
…代码块::python
{
"title":{
"title":{
"value":"work"1"
},
"subtitle":null,
"translated title":null
},
"journal title":{
"value":"journal"1"
},
"short description":空,
"type":"日志文章",
"外部id":{
"外部id":[{
"外部id type":"doi",
"外部id value":"ext-id-1",
"外部id url":{
"value":"http://dx.doi.org/ext-id-1"
"},
"外部id关系":"self"
}
}
}
如果您不知道如何构造json,请访问
"orcid swagger<;https://api.orcid.org/v2.0>;`
可以同时更新许多作品!
us``works``请求类型并传递这样的json:
…代码块::python
"bulk":[
{
"work":{
"title":{
"title":{
"value":"work 1"
},
},
"journal title":{
"value":"journal 1"
},
"type":"journal article",
"e外部id"{
"外部id":[{
"外部id type":"doi",
"外部id value":"ext-id-1",
"外部id url":{
"value":"http://dx.doi.org/ext-id-1"
},
"外部id relationship":"self"
"}]
}
}
},
{
"work":{
"title":{
"title":{
"value":"work"2"
},
},
"journal title":{
"value":"journal"2"
},
"type":"journal"article,
"extern"al-id"{
"外部id":[{
"外部id type":"doi",
"外部id value":"ext-id-2",
"外部id url":{
"value":"http://dx.doi.org/ext-id-2"
},
"外部id relationship":"self"
}"
}
}
}
}
]