Задать вопрос
@rodion_ilnitskiy

JSON неправильно записывает полученные данные. Как решить проблему?

Я пытаюсь пропарсить страницу запуская код:
import scrapy


class NewSpider(scrapy.Spider):
    name = "new"
    start_urls = [
        'https://tsum.ua/ua/nova-kolekcija.html',
    ]
    def parse(self, response):
        for category in response.xpath('//div[@class="product-detail-content"]'):
            yield{
                'name': category.xpath('h5[@class="product-item-brand-name"]/a[@class="product-item-link"]/text()').extract(),
                'deskription': category.xpath('h5[@class="product name product-item-name"]/a[@class="product-item-link"]/text()').extract(),
            }


Запуская
scrapy crawl new -o alles.json
я получаю то, что необходимо:
{'name': ['\n                                                REDValentino                                            '], 'deskription': ['Джинси']}

Однако в самом файле JSON записиваеться все так:
{"name": ["\n                                                REDValentino                                            "], "deskription": ["\u0417\u0430\u043c\u0448\u0435\u0432\u0456 \u043c\u044e\u043b\u0456"]},

как сделать description похожим на то, что я получил в терминале?
  • Вопрос задан
  • 115 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Ну во-первых, \u-нотация встречается не только в питоне, но и в JSON как таковом. Достаточно вбить в терминал питона
print("\u0417\u0430\u043c\u0448\u0435\u0432\u0456 \u043c\u044e\u043b\u0456")
чтобы убедиться, что строка в норме. Машина её прочитает без проблем.
Но если таки хочется человекочитаемого вида (пусть и ценой усложения программы), то нужно почитать про параметр ensure_ascii, а заодно не забыть открыть целевой файл в кодировке utf-8 или подобной.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
от 200 000 до 300 000 ₽
Greenway Global Новосибирск
от 150 000 ₽
Akronix Санкт-Петербург
от 150 000 до 200 000 ₽
31 янв. 2025, в 00:16
43000 руб./за проект
30 янв. 2025, в 21:33
5000 руб./за проект
30 янв. 2025, в 21:14
4000 руб./за проект