【问题标题】:Python3 Error: TypeError: 'str' object is not callablePython3 错误:TypeError:'str' 对象不可调用
【发布时间】:2019-11-03 15:26:51
【问题描述】:

我想从 subreddit 获取最新的帖子 ID。 Reddit 对此有基本的 api。你可以得到 json 所以我想提供数据并对其进行解码,但我有一个错误。

root@archi-sunucu:~/yusuf/www# python3 reddit.py
Traceback (most recent call last):
  File "reddit.py", line 24, in <module>
    json = json.loads(resp.text())
TypeError: 'str' object is not callable
root@archi-sunucu:~/yusuf/www# python3 reddit.py

我的代码:

url = "https://www.reddit.com/r/" + subreddit + "/" + feed + ".json?sort=" + feed + "&limit=6"

resp = requests.get(url, verify=False)
json = json.loads(resp.text())

print(json["data"]["children"][0]["data"]["id"])

感谢您的帮助...

【问题讨论】:

  • 如果不能调用就不要调用了:json.loads(resp.text)
  • 你读过我写的吗?

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


【解决方案1】:

你抱怨这个表达式raises 一个错误:

json.loads(resp.text())

好吧,让我们把它分解成更简单的东西, 所以行号可以准确地告诉我们代码的哪一部分失败了。

temp = resp.text()
json.loads(temp)

现在我们看到第二行甚至没有执行, 它在尝试计算某些东西的第一行失败 分配给临时变量。

使用工具检查resp 及其属性 比如help(resp)dir(resp)type(resp.text)repr(resp.text)。 您很快就会知道.text 属性是str。 那不是可调用函数,所以 python raises 出错。 直接使用该值,无需调用:

json = json.loads(resp.text)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-16
    • 1970-01-01
    • 1970-01-01
    • 2015-03-07
    • 2019-03-05
    • 1970-01-01
    相关资源
    最近更新 更多