使用python在pandas中通过调取金蝶K3cloud API来进行取数据
为了数据安全与隐私,相关信息数据做了星号处理,请读者自行填充使用
在使用python调取金蝶API的过程中,首先要拿到一组参数
lcId:2052
password
appId
serverUrl
acctId
appSecret
userName
注意:上面这组参数除了lcId和acctId,其他的账号、密码及密钥,要么你是金蝶的系统管理员能够自动生成,要么你就找相关人员要。不然后面没办法调取数据。
提示:密钥需要金蝶k3cloud管理员进入 系统管理->第三方系统认证->新增
生成密钥和填写appid和app名称。
import json, requests
from pandas.core.frame import DataFrame# 下面两个URL是固定的,写上相应的IP地址,就可以了
login_url = "http://【这里写serverUrl】/k3cloud/Kingdee.BOS.WebApi.ServicesStub.AuthService.ValidateUser.common.kdsvc"
query_url = "http://【这里写serverUrl】/K3Cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery.common.kdsvc"# 下面登录携带的参数,全部都是我们之前准备好的
login_data = {"acctid": "6*********f", "username": "S*****用", "password": "s*******1", "appId": "22************2qot", "appSecret": "1f*******8d7","lcid": 2052}# 我们先定义一个登录函数
def login(): login_response = requests.post(url=login_url, data=login_data)return login_response.cookies # 返回登录金蝶的cookies# 下面按照相应的格式写入我们需要通过API拿取的数据字段,这些字段直接照搬金蝶web API查询时写的字段就行,包括过滤条件啥的。
post_data = {"data": json.dumps({"FormId": "BD_STOCK","FieldKeys": "FNumber,FName", # 我这里就取两个字段 "FilterString": "","OrderString": "","StartRow": 0,"Limit": 100000,"TopRowCount": 100000
})}
# 上面数据如何照搬可以看文末图片response = requests.post(url=query_url, data=post_data, cookies=login())
data = json.loads(response.text)# 把提取到的数据,给他命个名称,就可以了
columns = ['FNumber','FName']
df = DataFrame(data=data,columns=columns)
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!