首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何访问ECB Dataflow?TooManyRedirects:超过30个重定向

如何访问ECB Dataflow?TooManyRedirects:超过30个重定向
EN

Stack Overflow用户
提问于 2021-03-04 17:25:44
回答 1查看 64关注 0票数 0

我正在使用pandasdmx库中的请求包来访问欧洲中央银行的一些汇率。我尝试遵循以下演练中突出显示的步骤:https://pandasdmx.readthedocs.io/en/v1.0/walkthrough.html#,但当我尝试访问不同的数据流时,它给了我一个错误。这是我使用的代码:

代码语言:javascript
运行
复制
import pandasdmx as sdmx
ecb = sdmx.Request('ECB')
ecb_via_proxy = sdmx.Request('ECB',proxies={'http': 'http://1.2.3.4:5678'})
flow_msg = ecb.dataflow()


flow_msg = ecb.dataflow()
Traceback (most recent call last):

  File "<ipython-input-8-9011799aab2e>", line 1, in <module>
    flow_msg = ecb.dataflow()

  File "C:\Users\gcperez\AppData\Local\Continuum\anaconda3\lib\site-packages\pandasdmx\api.py", line 361, in get
    base_url, params=params, headers=headers, fromfile=fromfile)

  File "C:\Users\gcperez\AppData\Local\Continuum\anaconda3\lib\site-packages\pandasdmx\remote.py", line 98, in get
    url, params=params, headers=headers)

  File "C:\Users\gcperez\AppData\Local\Continuum\anaconda3\lib\site-packages\pandasdmx\remote.py", line 118, in request
    with closing(requests.get(url, params=params, **cur_config)) as response:

  File "C:\Users\gcperez\AppData\Local\Continuum\anaconda3\lib\site-packages\requests\api.py", line 76, in get
    return request('get', url, params=params, **kwargs)

  File "C:\Users\gcperez\AppData\Local\Continuum\anaconda3\lib\site-packages\requests\api.py", line 61, in request
    return session.request(method=method, url=url, **kwargs)

  File "C:\Users\gcperez\AppData\Local\Continuum\anaconda3\lib\site-packages\requests\sessions.py", line 530, in request
    resp = self.send(prep, **send_kwargs)

  File "C:\Users\gcperez\AppData\Local\Continuum\anaconda3\lib\site-packages\requests\sessions.py", line 665, in send
    history = [resp for resp in gen] if allow_redirects else []

  File "C:\Users\gcperez\AppData\Local\Continuum\anaconda3\lib\site-packages\requests\sessions.py", line 665, in <listcomp>
    history = [resp for resp in gen] if allow_redirects else []

  File "C:\Users\gcperez\AppData\Local\Continuum\anaconda3\lib\site-packages\requests\sessions.py", line 166, in resolve_redirects
    raise TooManyRedirects('Exceeded {} redirects.'.format(self.max_redirects), response=resp)

TooManyRedirects: Exceeded 30 redirects.

我以前使用过很多次这种访问方式,没有出任何问题。有人知道会发生什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-04 17:51:46

欧洲央行更改了其web服务URL,而您拥有的pandaSDMX版本没有当前的URL。我建议使用7个月前修复此问题的sdmx1包(see the diff here):

代码语言:javascript
运行
复制
$ pip install sdmx1
代码语言:javascript
运行
复制
import sdmx

ECB = sdmx.Client("ECB")
flow_msg = ECB.dataflow()   

print(repr(flow_msg))                                                 

提供:

代码语言:javascript
运行
复制
<sdmx.StructureMessage>                       
  <Header>                                                                                        
    id: 'IREF508443'                                                                              
    prepared: '2021-03-04T09:40:40+00:00'
    receiver: <Agency not_supplied>
    sender: <Agency Unknown>
    source: 
    test: False
  response: <Response [200]>
  DataflowDefinition (71): AME BKN BLS BNT BOP BSI BSP CBD CBD2 CCP CIS...
  DataStructureDefinition (55): ECB_AME1 ECB_BKN1 ECB_BLS1 ECB_BOP_BNT ...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66472129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档