登录/注册
developing 在研功能
数据API接口文档 > 使用指南 > API功能函数

api功能函数 #

1 登陆函数: auth(mid,mkey,**kwargs)

注意:其它所有数据访问的函数都基于用户正常登陆的情况下才能使用

参数说明:

  • mid: 平台用户申请的数据服务的账户名
  • mkey: 对应用户名的验证密码
  • no_use_thread_raise: 登陆成功后,数据线程(用户的权限数据线程)无法获取(例如,该账户下的权限线程总数同时占用,或者休眠时间很长,原来激活的线程过期)时是否直接抛出异常,True为抛出,False为不抛出,默认为值False
  • dt_wait_seconds:>0的整数值,浮点数,在no_use_thread_raise 为False生效,尝试继续获取数据线程的间隔时间,在默认值3(s)
  • dt_wait_nums: 整数值,在no_use_thread_raise 为False生效,尝试继续获取数据线程的次数, 默认值3(次),若取值<0则为一直尝试。
  • 备注:1.用户每一次获得数据后数据线程都会自动增加20(s)的生命时长,如果下一次数据访问间隔时间超过这个时间,那么线程就会自动实效 2.用于客户端每在一个线程中使用api中的函数进行数据访问,都会衍生出一个权限数据线程。

调用示例

from zc_data import auth

#1登陆成功后遇到没有可用数据线程到的情况下,尝试3次重新获取数据线程,每次间隔3秒
auth(mid="user",mkey="password")

#2登陆成功后遇到没有可用数据线程到的情况下,尝试n次重新获取数据线程,每次间隔m秒
auth(mid="user",mkey="password",dt_wait_seconds=m,dt_wait_nums=n)

#3登陆成功后遇到没有可用数据线程到的情况下,一直尝试重新获取数据线程,每次间隔m秒
auth(mid="user",mkey="password",dt_wait_seconds=m,dt_wait_nums=-1)   

#4 登陆成功后遇到没有可用数据线程到的情况下,直接抛出异常
auth(mid="user",mkey="password",no_use_thread_raise=Ture)
复制代码

2 运行时数据异常处理

以下表格为package目录下zc_data\error_codes.py中的枚举类ZCDataErrorCode中部分枚举值value解释

枚举值 含义
api_change_error.value aip被篡改,或者aip其它问题
data_fields_error.value 数据func请求中,有fields可选的方法中,fields中填入了不支持的字段
data_func_not_acc.value 用户没有访问某种数据服务的权限
data_target_query_failed.value 数据访问没有查询到匹配的数据
data_not_exists.value 数据查询不存在,同上等价
data_source_get_failed.value 服务端数据源异常
data_query_num_zero.value 用户当日的权限访问条数使用完
data_query_up_max_sys_define.value 平台设定的单次访问数量超限,平台当前设置为10w条
args_define_error.value 数据func请求中缺少了必要参数
args_not_support_type.value 数据请求中参数的类型设置错误,例如本来要求的类型为list却给类dict
args_not_support_value.value 数据请求中此参数有效值错误,例如interval参数值为day写成了days等
  • 以上数据请求过程中的各种异常,我们称之为运行时数据异常,这些异常是服务端的反馈的,用户自己本地导致的异常是不包含内的。
  • 通过设置在zc_data\error_codes.py中DATA_RUNTIME_ERROR_RAISE_LIST,实现运行时数据异常处理,如果要忽略某种数据异常,用户可以将此列表中的上表中对应含义的枚举值注释掉,那么发生异常时将得到None
  • 如果用户在自行处理异常,也就是让api抛出以上异常,以下提供示例:
from zc_data.api import func
from zc_data.error_codes import ZCDataErrorCode,DataError

#例1 假设func中定义的arg1只能是"ccc"或者"ddd",以下显然是会抛出参数有效值异常
try:
    res = func(arg1="aaa")
except DataError as e:
    if e.err_code == ZCDataErrorCode.args_not_support_value.value: 
        .....
#例2 假设数据访问的过程中当日数据权限条数使用完

try:
    res = func(arg1="aaa")
except DataError as e:
    if e.err_code == ZCDataErrorCode.data_query_num_zero.value: 
        .....

#例3 假设数据访问的过程中单次访问条数超过了平台的限定

try:
    res = func(arg1="aaa")
except DataError as e:
    if e.err_code == ZCDataErrorCode.data_query_up_max_sys_define.value: 
        .....
  
复制代码

3 获取当日数据量的使用情况: res = query_num_info() 参数说明:

  • 无参函数

数据字段说明

字段名 中文名 解释或备注
day_total_num 查询总数 用户权限下的每日查询最大数量
left_num 剩余数 当日可查询剩余数量

调用示例

from zc_data import auth
from zc_data.api import query_num_info
from datetime import date

auth("user","password") 
info = query_num_info()
复制代码

返回

info:
    {"day_total_num":2000000.0,"left_num":1255855.0}
复制代码
portrait
登录/注册 后发言
全部讨论(0)

暂无数据

api功能函数