python - 访问 API:TypeError:__init__() 得到了意外的关键字参数“编码”
问题描述
我正在尝试使用 ETL 工具 Alteryx 访问 API,但收到错误:
TypeError: __init__() got an unexpected keyword argument 'encoding'
我可以在 Python 2.7.16 中运行代码,但 Alteryx 中的版本是 3.6.0。我不得不将 xmlrpclib 所在的 JSONRPC 文件更改为 xmlrpc.client。然后我得到了No module named 'httplib'
. 我不得不将 httplib 更改为 http.client。接下来,我得到了错误Cannot import name 'HTTP'
。我看到了那条线,from httplib import HTTP, HTTPConnection
我删除了HTTP
. 最后,我为该jsonrpc
文件使用了一个 web 2to3 python 转换器,并添加from urllib.parse import (splittype, splithost)
到包中的行中jsonrpc
。我现在到了最后两行,但遇到了编码参数错误。
我已经尝试安装msgpack
,删除编码参数,并在 CurrentDirectory\Lib\json__init__.py
中为 json 更改 cls = 编码。__init__.py
import pprint
from jsonrpclib import jsonrpc
from datetime import datetime
Transaction_Code = datetime.now().strftime('%Y%m%d%H%M%S')
givex = jsonrpc.ServerProxy("host:port")
response = givex.dc_1026('en', Transaction_Code, 'ID', 'password', 'reportname','','')
pprint.pprint(response)
我希望数据的 JSON 输出,但我收到以下 Traceback:
回溯(最后一次调用):文件“”,第 1 行,在文件“C:\Program Files\Alteryx\bin\Miniconda3\PythonTool_venv\lib\site-packages\jsonrpclib\jsonrpc.py”,第 289 行,调用中 回归自我。发送(self.__name,args)文件“C:\Program Files\Alteryx\bin\Miniconda3\PythonTool_venv\lib\site-packages\jsonrpclib\jsonrpc.py”,第 237 行,在 _request rpcid=rpcid, version=self. __version) 文件“C:\Program Files\Alteryx\bin\Miniconda3\PythonTool_venv\lib\site-packages\jsonrpclib\jsonrpc.py”,第 532 行,在转储中返回 jdumps(request, encoding=encoding) 文件“C:\ Program Files\Alteryx\bin\Miniconda3\PythonTool_venv\lib\site-packages\jsonrpclib\jsonrpc.py”,第 98 行,在 jdumps 中返回 json.dumps(obj, encoding=encoding) 文件“C:.py”,第 238 行,在转储“”中 TypeError: init () got an unexpected keyword argument 'encoding'
解决方案
在@rickdenhaan的帮助下,我不得不在 Python 3.6 中使用 jsonrpclib-pelix 而不是 jsonrpclib
推荐阅读
- php - 执行存储功能后 Laravel 注销
- tensorflow - 如何在tensorflow对象检测api中为不同检测类可视化具有不同min_thres值的框和标签?
- haskell - haskell 中的 foldl(多级 foldl)问题
- php - 403 Forbidden - 拒绝访问服务器上的此资源 - PHP
- macos - 通过 WiFi 进行 Internet 共享时如何在 Mac 上查看连接的 IP 地址
- html - 错误消息“drive.google.com 拒绝连接”。
- email - 如何使用 postfix 在 Ubuntu 16.04 上设置邮件服务器
- css - CSS,Stylus:有条件的“else”被忽略
- python - 如何根据 anotehr 单选按钮值禁用 django 表单单选按钮
- vtk - 如何使用 pyqt6 添加 vtk/pyvista 窗口?