Что вы подразумеваете под «последовательностью»? Вы можете превратить его в словарь следующим образом. Просто разместите этот код после создания idata
.
stocks = {}
for line in idata.split("\r\n"):
if line == '':
continue
stock, price, volume, stime = line.split(',')
stock = stock[1:-1]
price = float(price)
volume = int(volume)
stime = stime[1:-1]
stocks[stock] = (price, volume, stime)
Если вы хотите быть немного более надежным, вы можете использовать модуль csv
(добавить import csv
в верхней части кода), а затем использовать
reader = csv.reader(idata.split("\r\n"))
stocks = {}
for line in reader:
if line == '':
continue
stock, price, volume, stime = line
price = float(price)
volume = int(volume)
stocks[stock] = (price, volume, stime)
Для вставки в базу данных, следующие может работать
reader = csv.reader(idata.split("\r\n"))
stocks = []
for line in reader:
if line == '':
continue
stock, price, volume, stime = line
price = float(price)
volume = int(volume)
stocks.append((stock, price, volume, stime))
csr.executemany('INSERT INTO test.prices VALUES (?,?,?,?)', stocks)
Это, конечно, предполагает, что ваши столбцы находятся в том же порядке, что и элементы массива.
Спасибо, я?. am tring для вставки данных в Sqlite с использованием csr.executemany ('INSERT INTO test.prices VALUES (?,?,?,?)', idata) pyodbc.ProgrammingError: Второй параметр для выполнения должен быть последовательностью. для строки в idata: csr.execute ('INSERT INTO test.prices VALUES (?,?,?,?)', Idata) pyodbc.ProgrammingError: ('SQL con tains 4 параметра маркеры, но 1 параметр был поставлен ',' HY000 ') – Merlin
См. мой обновленный ответ для возможного решения. –
спасибо, за нашу помощь ...... складе, цена, объем, stime = line ValueError: требуется больше 0 значений для распаковки – Merlin