sqlite3 데이터베이스에 약 1000 개의 부동 소수점 수의 numpy 배열을 저장하려고하는데 "InterfaceError : Error binding parameter 1-아마도 지원되지 않는 유형"이라는 오류가 계속 발생합니다.
BLOB 데이터 유형은 무엇이든 될 수 있다는 인상을 받았지만 분명히 numpy 배열에서는 작동하지 않습니다. 내가 시도한 것은 다음과 같습니다.
import sqlite3 as sql
import numpy as np
con = sql.connect('test.bd',isolation_level=None)
cur = con.cursor()
cur.execute("CREATE TABLE foobar (id INTEGER PRIMARY KEY, array BLOB)")
cur.execute("INSERT INTO foobar VALUES (?,?)", (None,np.arange(0,500,0.5)))
con.commit()
numpy 배열을 테이블에 가져 오는 데 사용할 수있는 다른 모듈이 있습니까? 또는 numpy 배열을 파이썬에서 sqlite가 수락 할 목록이나 문자열과 같은 다른 형식으로 변환 할 수 있습니까? 성능은 우선 순위가 아닙니다. 그냥 작동하기를 원합니다!
감사합니다!
-
답변 # 1
-
답변 # 2
지정된 다른 방법은 저에게 효과적이지 않습니다. 그리고
def adapt_array(arr): out = io.BytesIO() np.save(out, arr) out.seek(0) return sqlite3.Binary(out.read())
가있는 것 같습니다 지금 방법과numpy.tobytes
(바이트 문자열에서 작동하지만) 더 이상 사용되지 않으며 권장되는 방법은numpy.fromstring
입니다. .numpy.frombuffer
고기와 감자에 오기
import sqlite3 import numpy as np sqlite3.register_adapter(np.array, adapt_array) sqlite3.register_converter("array", convert_array)
응용 프로그램에서 테스트했으며
def adapt_array(arr): return arr.tobytes() def convert_array(text): return np.frombuffer(text)
에서 잘 작동합니다. 그리고Python 3.7.3
numpy 1.16.2
numpy.fromstring
와 동일한 출력을 제공합니다DeprecationWarning: The binary mode of fromstring is deprecated, as it behaves surprisingly on unicode inputs. Use frombuffer instead
관련 자료
- 3D numpy 배열을 2 그룹으로 나누기 python
- 파이썬에서 전체 numpy 배열을 사용자 정의 함수에 인수로 전달하는 방법은 무엇입니까?
- python - numpy 배열의 올바른 색인 얻기
- sqlite - 파이썬에서 커밋 한 후에도 sqlite3에 데이터가 삽입되지 않음
- Python의 if 문에서 값 배열 만들기
- Python function - Python 함수 — 연결 목록의 시작과 끝에 값을 삽입하는 — 연결 목록을 수정하지 않습니다
- javascript - 기존 개체 배열에 새 키 값을 삽입 하시겠습니까?
- pandas 및 numpy로 Python에서 행렬 만들기
- 파이썬에서 0으로 채우는 배열
- python - 문자열로 채워진 numpy 배열 (모양 (n, m))에서 모든 값의 첫 번째 문자를 얻는 방법
- python 3.x - numpy - 2d 배열 행렬의 크기?
- Numpy를 사용하여 Python에서 열의 로그를 어떻게 가져올 수 있습니까?
- python - Pyspark 데이터 프레임에 Numpy 배열 추가
- python - numpy 배열의 데이터 쌍을 이루는 알고리즘을 개발하는 방법
- 파이썬은 텍스트 파일을 단어 배열로 읽습니다
- python 3.x - python3 flask 및 sqlite3 - 데이터베이스에 삽입 할 수 없습니다
- python - numpy 배열을 단일 정수로 병합
- numpy의`full ()`메서드와 파이썬 목록을 사용하여 numpy 배열을 만들 수 없습니다
- Python 버전 39에서 numpy를 설치하지 못했습니다
- python - numpy 배열을 데이터 프레임으로 변환
- python - Pandas는 dtypes에서 case가 의미하는 바가 있습니까?
- arrays - python/numpy에서 슬라이싱 할 때 '둘러싸 기'
- 파이썬 목록에서 2D 배열을 만드는 방법은 무엇입니까?
- python numpy square of matrix가 작동하지 않습니다
- 3D numpy 배열을 2 그룹으로 나누기 python
- python - matplotlib 등고선 플롯 채우기
- python - sqlite에 이미지 저장 - 장고
- python - 비용 함수가 상승하는 신경망의 버그
- python runtimeerror - numpy 설치 오류
- python - npangle에서 반환 된 부정확 한 위상
이것은 저에게 효과적입니다 :