Как было упомянуто ранее, экспортер JSON записывает экранированные символы Unicode и имеет возможность записывать их как Unicode ensure_ascii=False
.
Чтобы экспортировать элементы в кодировке utf-8, вы можете добавить их в файл settings.py
вашего проекта:
from scrapy.exporters import JsonLinesItemExporter
class MyJsonLinesItemExporter(JsonLinesItemExporter):
def __init__(self, file, **kwargs):
super(MyJsonLinesItemExporter, self).__init__(file, ensure_ascii=False, **kwargs)
FEED_EXPORTERS = {
'jsonlines': 'yourproject.settings.MyJsonLinesItemExporter',
'jl': 'yourproject.settings.MyJsonLinesItemExporter',
}
Затем запустить:
scrapy crawl spider_name -o output.jl
Подобные имена столбцов можно заключить в [ ] кронштейны. Поэтому:
insert into mykeyvalues ([Key],[Value]) values ('FooKey', 'FooValue')
Используйте обратные кавычки (`) или двойные кавычки (") вокруг идентификаторов в вашем запросе. Например:
INSERT INTO mykeyvalues ("Key", "Value") values ('FooKey', 'FooValue')
Но в долгосрочной перспективе это просто уменьшает переносимость. Проще использовать другое имя.