2015-01-05 3 views
0

문자열 배열이 있습니다. 문자열의 각 행에는 1440 개의 "숫자"가 들어 있습니다. 아래의 코드를 사용하면 프로그램이 제대로 실행되지만 pgAdmin을 통해 기능 열을 확인하면 비어 있습니다. 이미지의 경로를 포함하고 기본 키인 "이미지"열이 올바르게 채워집니다. 나는 "이미지"열에 기능을 저장하려고하면 지금은 충분한 공간이 있다는 오류가 발생 :PostgreSQL : 파이썬에서 문자열 배열을 저장할 수 없습니다.

인덱스 행 크기 2896 '인덱스

을 위해 최대 2,712 초과하지만 돈 나는 오류가 없기 때문에 배열을 "기능"열에 저장할 때 이것이 문제라고 생각하지 않습니다.

for imagePath in glob.glob(args["dataset"] + "/*.jpg"): 
    # Get the image 
    imageID = imagePath[imagePath.rfind("/") + 1:] 
    image = cv2.imread(imagePath) 

    # Find the features 
    features = cd.describe(image) 

    # Put the features into DB 
    features = [str(f) for f in features] 
    cursor.execute("insert into index (image,feature) values (%s,%s);", (imageID,features)) 
    conn.commit() 

conn.close() 

UPDATE : 그것은 내가 열을 가져 오는 경우 내가 모든 숫자를 얻을 수 있기 때문에하는 pgAdmin과 관련된 문제라고 보인다.

+0

이 테이블에 대한 스키마는 무엇입니까? –

+0

두 열에 모두 특별한 텍스트가 없습니다. "이미지"열은 기본 키입니다. – user1798707

+0

기본 키로 "이미지"가 있습니까? 이것은 효과가 없을 것입니다. 열쇠는 결코 그렇게 큰 것이 아닙니다. – Ashalynd

답변

1

열에 대한 색인이 있으며 해당 색인에 대해 너무 넓은 데이터를 삽입하려고합니다. 해당 인덱스를 주문할 필요가없는 경우 해시 인덱스로 전환하는 것이 좋은 해결책 일 수 있습니다. 그렇지 않으면 다시 생각해야합니다.

관련 문제