ValueError: stat: 路径对于 Jupyter Notebook 上的 Windows 解析 URL 请求



我正在尝试解析我的公司 Odata 数据,以构建采用公司名称和延迟字段的延迟供应商比例。

我打开了文件并将其转换为字符串,因为我发现了一篇关于如何使用身份验证请求 url 的非常有用的帖子,并且我获得了包含整个报告的字符串文本。该报告是用XML编写的,我在Jupyter Notebook中使用Python 3.7来处理它。

我发现了另一篇使用类方法查询与我的类似的XML文件的帖子,但是我的输出是错误ValueError:stat:路径对于Windows来说太长了。

我该如何解决这个问题?

谢谢!

import requests
import pandas as pd
import numpy as np
import base64
import urllib.request
request = urllib.request.Request('https://myUrl_OData')
base64string = base64.b64encode(bytes('%s:%s' % ('Myusername', 'Mypassword'),'ascii'))
request.add_header("Authorization", "Basic %s" % base64string.decode('utf-8'))
result = urllib.request.urlopen(request)
resulttext = result.read()
text = resulttext.decode(encoding='utf-8',errors='ignore')
from xml.sax import parse
from xml.sax.handler import ContentHandler
class properties(ContentHandler):
def __init__(self):
self.elements = []          # stack of elements
self.char_data = u''        # string buffer
self.current_vendor = u'' 
self.current_latedays = u''
def startElement(self, name, attrs):
if companyname == u'CompanyName':
self.elements.append(u'CompanyName')
if latedays == u'LateDays':
self.elements.append(u'LateDays')
def characters(self, chars):
if len(self.elements) > 0 and self.elements[-1] in [u'CompanyName', u'LateDays']:
self.char_data += chars
def endElement(self, name):
self.elements.pop() if len(self.elements) > 0 else None
if companyname == u'CompanyName':
self.current_vendor = self.char_data
self.char_data = ''
if latedays == u'LateDays':
self.current_latedays = self.char_data
self.char_data = ''
if companyname == 'CompanyName':
if self.current_latedays == u'LateDays':
print('Found:', self.current_customer)
# clear the buffers now that is finished
self.current_year = u''
self.current_customer = u''
self.char_data = u''

parse(r"\\?\" + text, properties())

您的错误似乎与 XML 解析无关,而是与您的操作系统限制有关。 在基于 Windows 的操作系统上,文件的路径不能超过 ~260 个字符 (ref(。

尝试缩短文件名的长度,或减少指向数据的嵌套文件夹的数量。

最新更新