小编Jab*_*ber的帖子

如何将 SSLContext 与 Python 请求库一起使用?

certifi库经常遇到域证书问题,但在标准urllib.request库中没有问题。

如果我将上下文设置为使用证书文件,则会收到 SSL 错误,

import ssl
import certifi
import requests.urllib as urlrq

resp = urlrq.urlopen(url="https://<web address>/rest/info?f=json", 
                                  context=ssl.create_default_context(cafile=certifi.where()))
Run Code Online (Sandbox Code Playgroud)

如果我使用标准库并设置上下文如下:

import ssl
import certifi
import requests.urllib as urlrq

resp = urlrq.urlopen(url="https://<web address>/rest/info?f=json", 
                                  context=ssl.SSLContext(ssl.PROTOCOL_TLSv1))
Run Code Online (Sandbox Code Playgroud)

没有 SSL 错误。

我怎样才能收到尊重这一点的请求SSLContext

urllib3 python-3.x python-requests

7
推荐指数
1
解决办法
7996
查看次数

动态修改 Python 方法和参数

我正在使用 Python,我从这里的参数的 REST 端点获得了一个定义:

https://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Network/ESRI_DriveTime_US/GPServer/CreateDriveTimePolygons?f=json

我想要做的是以下内容:

  1. 创建一个名为:CreateDriveTimePolygons 的函数
  2. 添加输入参数
  3. 引用类中可以处理这些输入的函数。
OnlineMethod(above_url).CreateDriveTimePolygons(Input_Location=(25,-34), Drive_Times="5,12,31")
Run Code Online (Sandbox Code Playgroud)

我可以setattr在 obj 上使用来定义预制函数,但我的问题如下:

  1. 如何更改方法的签名名称?
  2. 如何修改方法的输入参数?

谢谢

目标是不使用 kwargs 或 args

python methods dynamic

6
推荐指数
1
解决办法
581
查看次数

用python模仿7zip

我正在使用Python 3.6,目前我将子处理到我的7zip程序以获得我需要的压缩.

subprocess.call('7z a -t7z -ms=off {0} *'.format(filename))

我知道zipfile类有'ZIP_LZMA'压缩,但我传递的应用程序也说输出文件不正确.那么还有什么我需要添加到ZipFile类来使它模仿上面的命令?

python 7zip lzma

5
推荐指数
1
解决办法
660
查看次数

使用Python的LazyLoader导入类导入顶级模块

如果我懒惰import os的话,我可以使用以下方法:

os = lazy('os')
Run Code Online (Sandbox Code Playgroud)

它会延迟加载库,但如果我这样做:

path = lazy('os.path')

正在LazyLoader加载os模块,然后延迟加载path子模块。我怎样才能防止这种情况发生?

另外我不知道这是否受支持,但我想知道你是否可以这样做:

os = lazy('os')
Run Code Online (Sandbox Code Playgroud)

但是该方法是否以惰性方式返回?

from os.path import isdir
Run Code Online (Sandbox Code Playgroud)

python lazy-loading python-3.x python-importlib

5
推荐指数
0
解决办法
424
查看次数