Итак, я пытался сделать что-то вроде монитора - какой монитор он распечатывает всякий раз, когда новый предмет, объект, номер новый, а затем распечатывает его, практически ничего не причиняя вреда.
json, который я печатаю (я знаю, что сейчас это не правильный формат json, но в настоящий момент он печатает правильные данные)
"threads": {
"1": {
"name": "Hello",
"id": "4174"
},
"2": {
"name": "World",
"id": "6231"
},
"3": {
"name": "Overflow",
"id": "7231"
}
}
В основном я сделалСценарий, который прямо сейчас:
def get_feed():
url = 'https://www.helloworld.com/loadfilter'
resp = s.get(url, timeout=6)
resp.raise_for_status()
return resp.json()['threads']
old_list = []
for index, thread in get_feed().items():
old_list.append(thread['id'])
while True:
try:
new_list = []
for index, thread in get_feed().items():
new_list.append(thread['id'])
for index, item in enumerate(new_list):
if item in old_list:
print(item['name'] # ERROR - string indices must be integers
else:
print('Sleeping 2 sec')
time.sleep(2)
except Exception as e:
print(e)
sys.exit()
Так что, в принципе, если я распечатаю внутри for index, thread in get_feed().items():
отпечаток thread['name']
, это не будет проблемой, и он будет распечатан.
Однако в цикле for: if item in old_list:
- Проблема в том, что он не распечатывает ничего, кроме идентификаторов, которые я добавил в список, и мне интересно, как я могу сделать так, чтобы он печаталвыводить имена через json, который указан выше?
Значение: всякий раз, когда я распечатываю после элемента if item old list
и т. д. ['name'], оно должно давать имя?