из журнала с извлеченными значениями регулярного выражения не удается правильно вставить в таблицу sqlite - PullRequest
0 голосов
/ 06 декабря 2010

Проблема с сохранением извлеченных значений в SQLite - Как адресовать или индексировать список значений для правильной вставки в таблицу.

Regex работает нормально:

входные данные журнала выглядят так:

0,0,0 (06026104)
1,6,1 (0,1501) (1011111000)
1,6,1 * 32 (0,1446) (1010190800)
1,8,1 (02484,825)
1,8.1 * 32 (02449.574)

правильный вывод регулярного выражения:

06026104
0.1501
02484.796

with open("usage.log") as fp:
  for line in fp:
    match = re.match(r'(0\.0\.0|1\.6\.1|1\.8\.1)\(([0-9\.]+)', line)
    if not match: continue
    version, value = match.groups()
    mylist.append(value)
for item in mylist:
   t = (item)
   cursor.execute('INSERT INTO energielog(sernr) values (?)', [t])
   cursor.execute('INSERT INTO energielog(peak) values (?)', [t])
   cursor.execute('INSERT INTO energielog(kwh) values (?)', [t])

Как получить правильное построчное чтениев SQLite?

Теперь каждая строка неправильно вводится в таблицу: 06026104 находится в строке 1, строке 1, строке 2, строке 2 и строке 3, строке 3. Второе значение находится только в строке 4, строке 1 и строке 5, строке 2 и так далее..

Например, если я разрешу печатать t [0: 3], получится:

060
0,01
024

сделал ли он строкииз этого?Как можно подать значение 1 (06026104) в строку таблицы "sernr" и значение 2 (0.1501) в строку таблицы "пик" ..

1 Ответ

0 голосов
/ 07 декабря 2010
for line in fp:
        match = re.search(r'(0\.0\.0|1\.6\.1|1\.8\.1)\(([0-9\.]+)', line)
        if match: 
            version,value = match.groups() 
            extrakt.append(value)
cursor.execute('INSERT INTO energielog (sernr, peak, kwh) values (?, ?, ?)', extrakt)

, что получается

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...