[英]How to use the python-pyodata module in Python
我无法使用pyodata从端点检索数据。 我在visual studio 2017中创建了一个项目,在我的浏览器上运行的示例url是http://localhost:51701/Striker.svc/Answers
即使使用请求库进行测试,我也能获得正确的输出,但是下面的代码打印出来一个空列表:
import requests
import pyodata
SERVICE_URL = 'http://localhost:51701/Striker.svc/'
# Create instance of OData client
client = pyodata.Client(SERVICE_URL, requests.Session())
print(client.schema.entity_sets)
我测试了在线托管的其他样本网址,他们都打印出实体集,因此不确定我缺少什么
我维护包,我们在几周前修复了XML命名空间的问题: https : //github.com/SAP/python-pyodata/commit/dd467e6ad58588d8c6edaae6b99967eb8cfe4c7c
我建议你升级到最新版本的pyodata。 如果您仍然遇到问题,可以指示pyodata使用您的命名空间: https ://pyodata.readthedocs.io/en/latest/usage/initialization.html#dealing-with-errors-during-parsing-metadata
你可以在$ metadata的乞讨时使用名称空间URI
<edmx:Edmx xmlns:edmx="http://schemas.microsoft.com/ado/2007/06/edmx" Version="1.0">
<edmx:DataServices xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" m:DataServiceVersion="1.0" m:MaxDataServiceVersion="3.0">
<Schema xmlns="http://schemas.microsoft.com/ado/2008/09/edm" Namespace="NorthwindModel">
上面的XML片段是从Microsoft的Northwind服务获得的,默认情况下支持它,服务器这里只是演示目的。 在您的python代码中,您将编写以下内容:
from pyodata.v2.model import Config
namespaces = {
'edmx': 'http://schemas.microsoft.com/ado/2007/06/edmx',
'edm': 'http://schemas.microsoft.com/ado/2008/09/edm'
}
custom_config = Config(xml_namespaces=namespaces)
northwind = pyodata.Client(SERVICE_URL, requests.Session(), config=custom_config)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.