【问题标题】:Received an empty Json response using Python Requests使用 Python 请求收到一个空的 Json 响应
【发布时间】:2015-03-19 14:24:29
【问题描述】:

zhihu,一个类似于Quora的中文问答社区,我正在写一个小程序来创建一个关注特定用户的用户列表。在显示此信息的页面上,通过向下滚动到底部,浏览器会发送一个 post 请求并接收 json 格式的响应以扩展关注者列表。

接收到的 json 的 sn-p 是(从 firebug 复制的):

{"r":0,"msg":["<div class=\"zm-profile-card zm-profile-section-item zg-clear no-hovercard\">\n<div class=\"zg-right\">\n<button data-follow=\"m:button\" data-id=\"f09ebe71535bd89a43dd979c77cf3676\" class=\"zg-btn zg-btn-unfollow zm-rich-follow-btn small nth-0\">\u53d6\u6d88\u5173\u6ce8<\/button>.....

我对 json 知之甚少,但我确信 'msg' 包含有关关注者的信息。

在我的程序中,我使用 Python Requests module 将此 post 请求发送到服务器。

payload={"method":"next","params":params,"_xsrf":_xsrf}#form data 
response=session.post('http://www.zhihu.com/node/ProfileFollowersListV2',data=payload,headers=header)

response 的状态码为 200,但 response.json() 返回:

{u'msg': [], u'r': 0}

“味精”为空。谁能帮我解决这个问题?

【问题讨论】:

  • 您确定浏览器正在执行的是 POST 而不是 GET?
  • 看来您应该注册并登录才能查看某人的关注者。对吗?
  • 感谢 cmets。我确信这是我在 firebug 中看到的 POST 请求。

标签: json python-2.7 python-requests


【解决方案1】:

我在尝试获取返回的 json 文件中的内容时遇到了这个问题。要解决这个问题,你只需要调整一件事。

payload={"method":"next","params":params,"_xsrf":_xsrf}

注意参数。你没有告诉我们它到底是什么。由于您和我有同样的问题,我假设您的参数看起来像这样,

params = json.dumps({"offset":20,"order_by":"created","hash_id":"blablabla"})

这是一个大的。您的“偏移量”值必须是整数,在这种情况下为 20,但绝对不是字符串,例如“20”。当每个元素都被双引号引起来时,真的很难判断出了什么问题。

记住,“offset”的值必须是整数!

"offset":20

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-20
    • 2019-04-25
    • 1970-01-01
    • 1970-01-01
    • 2012-04-14
    • 2020-05-13
    • 1970-01-01
    相关资源
    最近更新 更多