Как вставить таблицу из NumPy в Mysql - PullRequest
1 голос
/ 13 сентября 2011

Я не могу заставить вставку работать в этом коде. У меня есть другие NumPy к MySQL, которые работают нормально. Но нет ошибок в выполнении кода. Mysql не дает ошибок. Использование python 2.7 и pyodbc на winx64.

p = np.arange(1, 33, 3)
print p

def prow (f1,series):
    rowp=[]
    series = series.tolist()
    ss = series[8:]
    rowp.append(1)       
    rowp.extend(ss)         

    print len (rowp)
    print rowp
    print type(rowp)  

    InSQL  = 'INSERT INTO test._t VALUES (1, 25, 28, 31)' 
    print InSQL
    # csr.executemany(InSQL,rowp)
    csr.execute(InSQL)
    print 1234   
    cxn.commit

prow('foo', p)

MySql ниже:

CREATE TABLE `_t` (
  `Id` int(11) DEFAULT NULL,
  `T1` float(12,4) DEFAULT NULL,
  `T2` decimal(12,4) DEFAULT NULL,
  `T7` float(12,4) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1

Это печатные операторы дают;

[ 1  4  7 10 13 16 19 22 25 28 31]
4
[1, 25, 28, 31]
<type 'list'>
INSERT INTO test._t VALUES (1, 25, 28, 31)
1234

Использование "INSERT INTO test._t VALUES (1, 25, 28, 31)" в оболочке mysql прекрасно работает. прямо сейчас есть много избыточного кода. Идея состоит в том, чтобы использовать executemany, но я не могу простой код для работы.

1 Ответ

2 голосов
/ 13 сентября 2011

В вашем коммите нет парней:

cxn.commit

# Should be:
cxn.commit()

При запуске из интерпретатора, cxn.commit без паренов просто возвращает ссылку на метод commit():

# Something like
>>> conn.commit
<built-in method commit of Connection object at 0x9cfe13c>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...