使用zeep访问数据库

时间:2019-06-09 09:32:34

标签: api zeep

我正在尝试使用Zeep从数据库(BRENDA)中以编程方式检索信息。

以下是代码。

    import zeep
    import hashlib


    wsdl = "https://www.brenda-enzymes.org/soap/brenda.wsdl"
    password = hashlib.sha256("xx".encode('utf-8')).hexdigest()
    parameters = "xxx," + password + ",ecNumber*{}#organism*{}#".format("2.7.1.2", "Homo sapiens")
    client = zeep.Client(wsdl=wsdl)
    print(client)

    km_string = client.getKmValue(parameters)

但是,出现以下错误

AttributeError: 'Client' object has no attribute 'getKmValue'

有人可以帮我吗?

上面的代码在python 2中使用SOAPpy库时可以正常工作。但是,我无法在python 3中成功安装SOAPpy,因此我尝试了Zeep。

显示SOAP实现的示例代码可用here

2 个答案:

答案 0 :(得分:3)

我们修复了Web服务。现在应该可以了。请在我们的网站上查看SOAP文档。

答案 1 :(得分:0)

不是分辨率,而是一些提示。

1)使用zeep,您需要在客户端和方法名称之间放置.service。正确的语法是client.service.getKmValue(parameters)(看看documentation

无论如何对于zeep来说,getKmValue不存在(但它存在于wsdl模式中,而SoapUi可以看到它)。

您也可以尝试py-suds

但是由于某种原因,我得到了一个称为wsdl的403。

-1