Как получить информацию из JSON? [Дубликат]

1

Я создаю скребок с Python. Он работает, когда я помещаю статический URL-адрес, но я хотел бы сделать для каждого URL-цикла с JSON файлом.

Этот код возвращает ошибку KeyError. Я красным онлайн, что это происходит потому, что это объект, а не массив. Я не знаю, как это исправить. Может ли кто-нибудь указать мне правильно или, возможно, даже просмотреть код? Я разместил несколько скриншотов об ошибках, как я просматриваю информацию JSON и способ структурирования файла JSON.

Структура JSON:

Изображение 174551

from bs4 import BeautifulSoup
import requests
import json

with open("C:\data.json") as my_json:
    json_dict = json.load(my_json)
for website in json_dict[0][0]:
    print("About to scrape: ", website)


print('step 1')
#get url
page_link = website
print('step 2')
#open page
page_response = requests.get(page_link, timeout=1)
print('step 3')
#parse page
page_content = BeautifulSoup(page_response.content, "html.parser")
print('step 4')
#Find info
naam = page_content.find_all(class_='<random class>')[0].decode_contents()
print('step 5')
#Print
print(naam)
  • 0
    for website in json_dict['url'][0]['loc']:
  • 0
    Вы не должны использовать изображения для кода. Вы должны включить весь соответствующий код в ваш вопрос.
Показать ещё 2 комментария
Теги:
python-3.x
screen-scraping
beautifulsoup

1 ответ

-1

В вашем json файле открывающая скобка всего этого не называется, попробуйте json_dict['data']['url']['loc'][0] ей данные, а затем вызовите ее с помощью json_dict['data']['url']['loc'][0] (для самого URL-адреса)

  • 0
    Прежде чем добавить комментарий о том, что он не работает, я просто добавил [0] в конец выражения, так как не знал, что вы используете массив в файле json (по какой-либо причине)
  • 0
    Я рад, что обновился. :-) К сожалению, это также дало ошибку. $ python c: /Users/Sebastiaan/Desktop/PythonBoek/scraperPython/scraper2.0.py Traceback (последний вызов был последним): файл "c: /Users/Sebastiaan/Desktop/PythonBoek/scraperPython/scraper2.0.py", строка 8, в <module> для веб-сайта в json_dict ['data'] ['url'] ['loc'] [0]: KeyError: 'data' Я изменил свой json-файл, как вы и просили. {"data": {"url": [{"loc": ["<privacy>"], "changefreq": ["daily"]},
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню