@python_beginnersЭта группа больше не существует

Страница 1221 из 1885
Bulat
01.02.2017
12:21:59
если приходит 1 только, тогда ошибка

for carrier in resp_parsed['carriers']: KeyError: 'carriers'

Pavel
01.02.2017
12:24:51
for carrier in resp_parsed['carriers']: KeyError: 'carriers'
а какой ключ есть, если перевозчик один?

Bulat
01.02.2017
12:25:42
carriers

Google
Bulat
01.02.2017
12:25:46
сейчас пришлю ответ

ах тыж блин)))

carrier

{"carrier":{"code":59330,"title":"SiAvia d.o.o.","url":null,"contacts":null,"phone":"","codes":{"icao":"SVB","sirena":null,"iata":"KT"},"address":null,"logo":null,"email":null}}

а как лучше сделать проверку carriers или carrier приходит?

Pavel
01.02.2017
12:27:40
item = TranspyascrapyItem() for carrier in resp_parsed['carriers']: item['url'] = carrier['url'] item['address'] = carrier['address']
кстати, у тебя только последний перевозчик попадает в item, остальные просераются.

Bulat
01.02.2017
12:28:35
http://clip2net.com/s/3H2qCpU

вот так приходит, если несколько

Pavel
01.02.2017
12:28:57
Pavel
01.02.2017
12:30:51
не понял, вроде 3 строчки спаршивается..
ну, тебе виднее, но в том куске кода item создаётся только один раз и за пределами цикла. Возможно, это только демонстрационный фрагмент.

Bulat
01.02.2017
12:32:21
def parse(self, response): #print x #self.logger.info('Hi, this is an item page! %s', response.body) resp = response.body resp_parsed = json.loads(resp) item = TranspyascrapyItem() for carrier in resp_parsed['carriers']: item['url'] = carrier['url'] item['address'] = carrier['address'] item['code'] = carrier['code'] item['title'] = carrier['title'] item['iata'] = carrier['codes']['iata'] item['icao'] = carrier['codes']['icao'] item['sirena'] = carrier['codes']['sirena'] item['contacts'] = carrier['contacts'] item['email'] = carrier['email'] item['logo'] = carrier['logo'] item['phone'] = carrier['phone'] yield item

Google
Bulat
01.02.2017
12:32:58
if 'carrier' in resp_parsed: if 'carriers' in resp_parsed
получается без else вообще?

Pavel
01.02.2017
12:36:28
def parse(self, response): #print x #self.logger.info('Hi, this is an item page! %s', response.body) resp = response.body resp_parsed = json.loads(resp) item = TranspyascrapyItem() for carrier in resp_parsed['carriers']: item['url'] = carrier['url'] item['address'] = carrier['address'] item['code'] = carrier['code'] item['title'] = carrier['title'] item['iata'] = carrier['codes']['iata'] item['icao'] = carrier['codes']['icao'] item['sirena'] = carrier['codes']['sirena'] item['contacts'] = carrier['contacts'] item['email'] = carrier['email'] item['logo'] = carrier['logo'] item['phone'] = carrier['phone'] yield item
я не знаю, что ты делаешь с результатми этой функции, и почему оно вообще работает, но я бы строке item = TranscrapItem() передвинул внутрь цикла. Потому что ты выкидываешь один и тот же объект, и если ты их куда-то сохраняешь, то у тебя будет несколько одинаковых объектов.

Bulat
01.02.2017
12:38:22
это scrapy framework

я попробую осилить что ты написал)

Pavel
01.02.2017
12:39:38
Давай на пальцах расскажу.

Pavel
01.02.2017
12:43:00
У тебя есть функция, которая отдаёт листики бумаги, на которых написана какая-то информация. Ты пишешь на бумажке, делаешь yield и листик ушёл. По хорошему, в следующий раз тебе нужно брать новый лист бумаги (создавать новый объект item), но вместо этого ты забираешь старую бумажку, стираешь, что на ней было написано, и пишешь новые сведения. Таким образом, если тот, кому ты отдаёшь бумажку, не успел куда-то к себе переписать то что ты ему написла, то он потеряет эти сведения.

Pavel
01.02.2017
12:46:18
if resp_parsed['carriers'] in resp_parsed: TypeError: unhashable type: 'list'
проверка наличия ключа в массиве- if 'carriers' in resp_parsed:

Bulat
01.02.2017
12:46:46
если будет два if, тогда первый обработается, а второй просто нет?

Pavel
01.02.2017
12:52:26
Denis
01.02.2017
12:53:17
отличный пример )

Bulat
01.02.2017
12:53:32
))))

Google
Denis
01.02.2017
12:53:39
эх кармабота нет

Bulat
01.02.2017
12:53:50
класс, спасибо

получается циклы с "i" вообще не используются в бою?

Johnnie
01.02.2017
12:55:46
в смысле?

Bulat
01.02.2017
12:57:09
for (i = 1; i <= 1000; i++)

Johnnie
01.02.2017
12:57:12
for item in ('semki', 'meloch', 'pozvonit'): try: victim.pick(item) except NotFoundError: pass

Bulat
01.02.2017
12:58:03
понял, спс

Johnnie
01.02.2017
12:58:55
for (i = 1; i <= 1000; i++)
для этого можно пользоваться enumerate()

или range()

Never
01.02.2017
13:03:34
уже все понял, спасибо (внезапно)

Bulat
01.02.2017
13:12:49
а как код розовым цветом пишите?

гугл не знает

Roman
01.02.2017
13:13:21
шо?

Темный
01.02.2017
13:13:25
где розовый код?

Johnnie
01.02.2017
13:13:49
синий слышал, зеленый слышал, розовый - нет

Igor
01.02.2017
13:13:51
по одному символу ` с каждой стороны

Roman
01.02.2017
13:13:51
вот
это синий

Johnnie
01.02.2017
13:13:52
три раза на ё нажми

чтобы получилось `

Google
Roman
01.02.2017
13:14:09
синий цвет

Johnnie
01.02.2017
13:14:14
это если для многострочных. для одной строки хватит по одной штуке с обеих сторон строки

Igor
01.02.2017
13:14:15


ебаные дальтоники!

Roman
01.02.2017
13:14:26
рофл

у меня синий

Bulat
01.02.2017
13:14:37
синий

Admin
ERROR: S client not available

Igor
01.02.2017
13:14:39
да понятно. зависит от клиента просто ))

Pavel
01.02.2017
13:14:39
нормальный синий на скриншоте, чо вы

Bulat
01.02.2017
13:14:48
синий

во)

Johnnie
01.02.2017
13:14:55
синий зеленый розовый

Bulat
01.02.2017
13:14:56
спс)

b0g3r
01.02.2017
13:15:25


Bulat
01.02.2017
13:15:44
платье забыли прикрепить

Pavel
01.02.2017
13:15:50
ебаные дальтоники!
это у вас в гей-оси так разноцветно всё? ?

Bulat
01.02.2017
13:15:57
это все дневной свет)

Темный
01.02.2017
13:16:31
что за магия?

Google
b0g3r
01.02.2017
13:16:44
темы

Johnnie
01.02.2017
13:16:46
почему бы не называть его просто моноширинным вместо сине-зелено-красно-розового? :)

Denis
01.02.2017
13:17:24
Пидорасы, сэр

Denis
01.02.2017
13:17:42
Они отличаются чем-то?

Johnnie
01.02.2017
13:17:43
ну и я про то, не ошибешься

Igor
01.02.2017
13:17:46
но по одному бектику - это inline code, а по три - это блок кода

Denis
01.02.2017
13:18:06
inline block

Igor
01.02.2017
13:18:21


Johnnie
01.02.2017
13:18:37
уууууу...

Denis
01.02.2017
13:18:42
С андроида вообще все черные

Bulat
01.02.2017
13:18:50


Igor
01.02.2017
13:19:02
вот, здесь отлично видно )

Pavel
01.02.2017
13:19:28
веб-клиент?

Bulat
01.02.2017
13:19:50
хроме

Johnnie
01.02.2017
13:21:12
а если открыть веб клиент с телефона, как оно? никто не пробовал?

Страница 1221 из 1885

Эта группа больше не существует Эта группа больше не существует