小能豆

ndjson: TypeError: __init__() 得到了一个意外的关键字参数 'encoding'

python

当我在家用电脑(python 3.10.5)上运行 Flask 应用程序时,一切正常。我尝试使用 Python 3.10 在 pythonanywhere 上运行相同的代码并出现错误:

    Traceback (most recent call last): 
File "/home/speedclub/mysite/speedclub.py", line 90, in task1play sp = client.challenges.create(username = myclient.get_profile()['username'], rated = False, clock_limit = 60, color='black', position='8/8/8/3k4/8/8/1K6/Q7 w - - 0 1', clock_increment=0, variant='standard') 
File "/home/speedclub/.local/lib/python3.10/site-packages/berserk/clients.py", line 709, in create return self._r.post(path, json=payload) File "/home/speedclub/.local/lib/python3.10/site-packages/berserk/session.py", line 262, in post return self.request( 
File "/home/speedclub/.local/lib/python3.10/site-packages/berserk/session.py", line 102, in request return fmt.handle(response, is_stream=stream, converter=converter) File "/home/speedclub/.local/lib/python3.10/site-packages/berserk/formats.py", line 44, in handle return converter(self.parse(response)) File "/home/speedclub/.local/lib/python3.10/site-packages/berserk/formats.py", line 87, in parse return response.json(cls=self.decoder) 
File "/home/speedclub/.local/lib/python3.10/site-packages/requests/models.py", line 971, in json return complexjson.loads(self.text, **kwargs) 
File "/usr/local/lib/python3.10/site-packages/simplejson/__init__.py", line 542, in loads return cls(encoding=encoding, **kw).decode(s) TypeError: JSONDecoder.__init__() got an unexpected keyword argument 'encoding

我似乎已经搜索了整个互联网,但我还没有找到解决问题的方法。PC 和 pythonanywhere 上的库版本相同:ndjson = 0.3.1,berserk = 0.12.4 requests=2.31.0。这是我的代码中发生错误的部分:

sp = client.challenges.create(username = myclient.get_profile()['username'], rated = False, clock_limit = 60, color='black', position='8/8/8/3k4/8/8/1K6/Q7 w - - 0 1', clock_increment=0, variant='standard')

阅读 161

收藏
2023-06-16

共1个答案

小能豆

根据您提供的错误信息,问题可能是由于使用了不兼容的encoding参数导致的。在Python 3.10中,JSONDecoder类的构造函数不再接受encoding参数。

解决这个问题的一种方法是更新您使用的库版本。根据您提供的信息,您当前使用的版本如下:

  • ndjson = 0.3.1
  • berserk = 0.12.4
  • requests = 2.31.0

请尝试更新这些库的版本,以确保与Python 3.10兼容。您可以使用以下命令在PythonAnywhere上更新这些库:

pip install --upgrade ndjson berserk requests

完成后,请重新运行您的Flask应用程序,看看问题是否得到解决。

另外,请确保在PythonAnywhere上的虚拟环境中安装了Python 3.10,以便您的应用程序在正确的Python版本下运行。

2023-06-16