Analitycs

пятница, 23 сентября 2011 г.

Python mktime/strptime - TypeError: expected string or buffer

Иногда апдейты повергают меня в транс - недавно ловил баг с PHP+cURL, теперь отличился Python ;-/

Traceback (most recent call last):
  File "test.py", line 22, in 
    s = strptime(row['change_time'], TIME_FORMAT)  File "/usr/lib/python2.6/_strptime.py", line 454, in _strptime_time
    return _strptime(data_string, format)[0]
  File "/usr/lib/python2.6/_strptime.py", line 322, in _strptime
    found = format_regex.match(data_string)
TypeError: expected string or buffer

Описание

Лезем в код - получаем какой-то набор данных из MySQL через питоновский fetchall, затем преобразуем поле со временем и начинаем с ним танцевать.

Перестала работать конструкция
 
    s = strptime(row['change_time'], TIME_FORMAT)
    last_change_time = mktime(s)

После курения манов по времени в Python выясняется, что нужно в mktime отдавать 9 численный tuple


    s = row['change_time'].timetuple()
    last_change_time = mktime(s)

Вот и верь после этого людям... обновляй после этого пакеты...

понедельник, 19 сентября 2011 г.

WTF incentivised traffic?

Что это такое?

Траффик, которому за выполнение каких-то действий назначается поощрение, что в многих системах считается нарушением

Например, "заполни 10 заявок на получение кредита и я подарю тебе прикольный ништяк" (с)

Как бы это сказать по-русски?

PHP: echo var_export($xx) ничего не выводит

Иногда с логики построения функций PHP хочется биться головой об стену.

Конструкция

logActivity(var_export($vars));

Не выводит в лог НИЧЕГО. Ломаю голову, пытаясь понять, куда делись переменные.
Подсказка проста - второй аргумент.

logActivity(var_export($vars, TRUE));

пятница, 16 сентября 2011 г.

Как исправить Fatal error: Cannot use object of type stdClass as array (PHP+JSON)

Всем хороша в пятом php функция json_decode, только по умолчанию декодирует JSON строку в объект класса stdClass, с которым нельзя работать как с массивом.

Ибо конструкция

$json = json_decode($string);
echo $json['result'];

приведет к ошибке
Fatal error: Cannot use object of type stdClass as array

Правится это добавлением второго параметра
$json = json_decode($string, true);
echo $json['result'];

четверг, 15 сентября 2011 г.

Habrahabr осеннее обострение 2011 - часть 2

Продолжение цикла фейеричных статей цикла "Осеннее обострение" на хабре. Дополнение к части 1.

Вот тут человек всерьез предлагает отдавать весь контент для Apache через PHP с зипованием всего же - тем PHP. Причем - "исследует" и строит графики...

"Мы не ищем легких путей. Стоя... и в раскачивающемся гамаке - наш выбор" (с)

Как исправить ошибку Python datetime.datetime() is not JSON serializable?

Немного о сериализации через simplejson даты/времени, полученной из MySQL

При попытке сдампить результат из fetchall - чтобы отдать данные наружу во фронтендовский в Javascript в стиле

            sql  ='SELECT * FROM xxx WHERE id=%d'                                                          
            self._query(sql % id)
            data = self._cursor.fetchall()

получаем Exception

datetime.datetime(2011, 9, 14, 10, 18, 57) is not JSON serializable

Исправляется дополнительным форматом через лямбда-функцию

            dthandler = lambda obj: obj.isoformat() if isinstance(obj, datetime) else None
            response = json.dumps(data, ensure_ascii=False, default=dthandler)
Найдено, как водится - на StackOverflow

вторник, 13 сентября 2011 г.

Валюта в Яндекс-Директ и Google Adwords

Что самое интересное - в Яндекс-Директе - расчетная единица - у.е.



А вот в Google Adwords - рубли

"Странненько... непонятненько...." (с)