python поиск в json
По средствам aiohttp я получаю json такого вида:
<html><body><p>{"results":[{"id":"***************","publisher":{"name":"Zacks Investment Research","homepage_url":"https://www.zacks.com/","logo_url":"https://s3.polygon.io/public/assets/news/logos/zacks.png","favicon_url":"https://s3.polygon.io/public/assets/news/favicons/zacks.ico"},"title":"New Strong Buy Stocks for September 23rd","author":"Zacks Equity Research","published_utc":"2021-09-23T14:20:00Z","article_url":"https://www.zacks.com/commentary/1799693/new-strong-buy-stocks-for-september-23rd","tickers":["AAWW","LGIH","DLA","HRI","RCMT"],"amp_url":"https://www.zacks.com/amp/commentary/1799693/new-strong-buy-stocks-for-september-23rd","image_url":"https://staticx-tuner.zacks.com/images/articles/main/f7/2969.jpg","description":"AAWW, DLA, RCMT, HRI, and LGIH have been added to the Zacks Rank #1 (Strong Buy) List on September 23, 2021."}],"status":"OK","request_id":"e3d9c939d642bf64a0d2b26d6faafe86","count":1,"next_url":"https://api.polygon.io:443/v2/reference/news?cursor=YXA9MjAyMS0wOS0yM1QxNCUzQTIwJTNBMDBaJmFzPVFORDVKaUs1Q3pWQWVra05odkxaQ1JNZkxSS3VhaEVWendLWk0tbHBZZzQmbGltaXQ9MSZvcmRlcj1kZXNjZW5kaW5nJnRpY2tlcj1BQVdX"}</p></body></html>
как я из этого могу получить определенные значения, например "published_utc", "article_url"
полный код моей программы приведен ниже:
import aiohttp
import asyncio
import time
import bs4
from bs4 import BeautifulSoup
import json
start_time = time.time()
async def get_data(session, symb: str):
url = f'https://example.com{symb}'
async with session.get(url) as resp:
resp_text = await resp.text()
print(resp_text)
return resp_text
async def site_data():
async with aiohttp.ClientSession() as session:
tasks = []
text_file = open("nas_spis.txt", "r")
lines = text_file.readlines()
for g in lines:
cat = str(g).replace("\n", "")
task = asyncio.create_task(get_data(session, cat))
tasks.append(task)
await asyncio.gather(*tasks)
asyncio.run(site_data())
end_time = time.time() - start_time
print(end_time)
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Скорее всего json в виде словаря можно получить из ответа сервера так:
resp_dict = await resp.json()
Ну а дальше перебираете элементы словаря по ключу 'results' и там смотрите нужные поля:
for result in resp_dict['results']:
print(result['published_utc'], result['article_url'])