使用ConfigParser解析的请求模块上的URL时,InvalidSchema“找不到用于{!r}的连接适配器” .formaturl

问题描述

我在配置文件中有一个URL,我使用ConfigParser对其进行了解析以获取请求

config.ini

[default]
root_url ='https://reqres.in/api/users?page=2'

FetchFeeds.py

import requests
from configparser import ConfigParser
import os
import requests


config = ConfigParser()
config.read(os.path.join(os.path.dirname(__file__),'../Config','config.ini'))
rootUrl = (config['default']['root_url'])
print(rootUrl)
response = requests.get(rootUrl)

即使URL正确打印'https://reqres.in/api/users?page=2',但在请求模块上却出现以下错误

Traceback (most recent call last):
  File "C:/Users/sam/PycharmProjects/testProject/GET_Request/FetchFeeds.py",line 11,in <module>
    response = requests.get(rootUrl)
  File "C:\Users\sam\PycharmProjects\testProject\venv\lib\site-packages\requests\api.py",line 76,in get
    return request('get',url,params=params,**kwargs)
  File "C:\Users\sam\PycharmProjects\testProject\venv\lib\site-packages\requests\api.py",line 61,in request
    return session.request(method=method,url=url,**kwargs)
  File "C:\Users\sam\PycharmProjects\testProject\venv\lib\site-packages\requests\sessions.py",line 530,in request
    resp = self.send(prep,**send_kwargs)
  File "C:\Users\sam\PycharmProjects\testProject\venv\lib\site-packages\requests\sessions.py",line 637,in send
    adapter = self.get_adapter(url=request.url)
  File "C:\Users\sam\PycharmProjects\testProject\venv\lib\site-packages\requests\sessions.py",line 730,in get_adapter
    raise InvalidSchema("No connection adapters were found for {!r}".format(url))
requests.exceptions.InvalidSchema: No connection adapters were found for "'https://reqres.in/api/users?page=2'"

Process finished with exit code 1

请注意,我仔细检查了没有空格

解决方法

主要问题是它试图找到一个不存在的URL,例如'url.com'(正确的是url.com),因此解决方案是不要在config.ini文件中放入撇号:

[default]
root_url = https://reqres.in/api/users?page=2

还要考虑是否在参数中而不是在代码中而不是在配置文件中配置参数,而是使用它:

requests.get(config['default']['root_url'],params={'page': 2})

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...