使用Python库pyodata访问Odata中的数据



所以,我试图使用Python中的pyodata库来访问和下载Odata中的数据。

我试着访问北风数据,它工作。所以,我想我使用的代码是可以的。

import requests
import pyodata
url_t = 'http://services.odata.org/V2/Northwind/Northwind.svc'
# connection set up
northwind = pyodata.Client(url_t, requests.Session())
# This prints out a single value from the table Customers
for customer in northwind.entity_sets.Customers.get_entities().execute():
print(customer.CustomerID,",", customer.CompanyName)
break
# This will print out - ALFKI , Alfreds Futterkiste

我还尝试连接到excel中的Odata,看看上面的代码是否返回正确的数据,它确实返回了。

点击查看Odata连接的excel截图

现在,使用相同的代码连接到数据源,我想拉的数据没有工作:

#using this link to connect to Odata worked.
url_1 = 'https://batch.decisionkey.npd.com/odata/dkusers'
session = requests.Session()
session.auth = (user_name, psw)
theservice = pyodata.Client(url_1, session)

上面的代码返回这个错误消息(它是关于安全的吗?):

点击查看错误信息

连接到excel中的数据如下所示:

点击查看图片

我在想这可能是安全问题,阻止我访问数据,或者它可能是别的东西。如果有什么需要澄清的,请让我知道。谢谢。

第一次提问,如果有什么我没有做的,请让我知道。^ _ ^

您获得了HTTP 404 - Not Found.

服务"https://batch.decisionkey.npd.com/odata/dkusers"我无法从外部世界访问它,所以从网络的角度来看,在Excel导入的第二张图片中发生了更多的事情。

你可以暂时忘记pyodata,对于你的问题,它只是围绕HTTP网络层的包装,请求库。你需要找到一种初始化请求会话的方式,它将返回HTTP 200 OK。

北风示例服务简单明了,所以在初始化pyodata.Client时没有问题

参考请求库文档- https://docs.python-requests.org/en/latest/user/advanced/

//sample script 
url_1 = 'https://batch.decisionkey.npd.com/odata/dkusers'
session = requests.Session()
session.auth = (user_name, psw)
//??? SSL certificate needs to be provided perhaps? 
//?? or maybe you are behind some proxy that Excel uses but python not.. try ping in CMD
response = session.get(url_1)
print(response.text)

可用的pyodata文档关于初始化,但是你不会发现为什么你得到HTTP 404 - https://pyodata.readthedocs.io/en/latest/usage/initialization.html

相关内容

  • 没有找到相关文章

最新更新