Ошибка Python3: TypeError: объект 'str' не вызывается - PullRequest
0 голосов
/ 03 ноября 2019

Я хотел бы получить идентификатор последних сообщений из subreddit. 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"])

спасибо за помощь ...

1 Ответ

0 голосов
/ 03 ноября 2019

Вы жаловались, что это выражение raise s ошибка:

json.loads (resp.text ())

Хорошо, давайте разберем это начто-то попроще, поэтому номер строки говорит нам, какая именно часть вашего кода дает сбой.

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

Теперь мы видим, что 2-я строка даже не выполняется, в 1-й строке происходит сбой при попытке вычислить что-тоназначить временную переменную.

Изучите resp и его атрибут с помощью таких инструментов, как help(resp), dir(resp), type(resp.text), repr(resp.text). Вскоре вы узнаете, что атрибут .text является str. Это не вызываемая функция, поэтому python raises ошибка. Используйте значение напрямую, без вызова:

json = json.loads(resp.text)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...