【问题标题】:TypeError: Object of type set is not JSON serializable while using requestsTypeError:使用请求时,类型集的对象不是 JSON 可序列化的
【发布时间】:2020-12-18 19:23:06
【问题描述】:

所以,我正在编写一个使用请求库的程序。在尝试做某事时出现此错误:

Traceback (most recent call last):
  File "C:\Users\myste\Desktop\Bang.com keker\e.py", line 10, in <module>
    print(requests.get('https://www.bang.com/login_check',headers=headd,json=content).text)
  File "C:\Python39\lib\site-packages\requests\api.py", line 76, in get
    return request('get', url, params=params, **kwargs)
  File "C:\Python39\lib\site-packages\requests\api.py", line 61, in request
    return session.request(method=method, url=url, **kwargs)
  File "C:\Python39\lib\site-packages\requests\sessions.py", line 528, in request
    prep = self.prepare_request(req)
  File "C:\Python39\lib\site-packages\requests\sessions.py", line 456, in prepare_request
    p.prepare(
  File "C:\Python39\lib\site-packages\requests\models.py", line 319, in prepare
    self.prepare_body(data, files, json)
  File "C:\Python39\lib\site-packages\requests\models.py", line 469, in prepare_body
    body = complexjson.dumps(json)
  File "C:\Python39\lib\json\__init__.py", line 231, in dumps
    return _default_encoder.encode(obj)
  File "C:\Python39\lib\json\encoder.py", line 199, in encode
    chunks = self.iterencode(o, _one_shot=True)
  File "C:\Python39\lib\json\encoder.py", line 257, in iterencode
    return _iterencode(o, 0)
  File "C:\Python39\lib\json\encoder.py", line 179, in default
    raise TypeError(f'Object of type {o.__class__.__name__} '
TypeError: Object of type set is not JSON serializable

这是我的代码:

import requests
headd = {
    "User-Agent":"Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
    "Pragma":"no-cache" ,
    "Accept":"*/*" 
}
content = {
    f"\"_username\":\"MY_EMAIL\",\"_password\":\"MY_PASSWORD\",\"_remember_me\":true" 
}
print(requests.get('https://www.bang.com/login_check',headers=headd,json=content).text)

这个程序的基本作用是,它将获取您的电子邮件和密码列表,然后检查它们是否有效。以防您忘记帐户密码。不要问我这个程序有什么意义,因为我自己,我有一个要求做这个,所以我把它做 moyai

【问题讨论】:

    标签: python json python-3.x python-requests python-3.9


    【解决方案1】:

    content 传递给json 参数时,您传递的是set,但是,json 参数需要dict

    content = {
        f"\"_username\":\"MY_EMAIL\",\"_password\":\"MY_PASSWORD\",\"_remember_me\":true"
    }
    >>> print(type(content))
    <class 'set'>
    

    相反,它应该是:

    content = {"_username": "MY_EMAIL", "_password": "MY_PASSWORD", "_remember_me": "true"}
    >>> print(type(content))
    <class 'dict'>
    

    【讨论】:

      【解决方案2】:

      您的内容实际上是set 而不是dict。将其替换为:

      content = {"_username": "my_email", "_password": "my-password"} # etc...
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-11
        • 2019-07-24
        • 2019-11-21
        • 2021-11-13
        • 2018-09-22
        • 2019-01-17
        相关资源
        最近更新 更多