2017-09-20 3 views
1

저는 약 4000 만 개의 키가있는 다소 큰 사전을 가지고 있습니다. 텍스트 파일에 {key: value, key: value, ...}을 작성하여 순진하게 저장했습니다. 파이썬은 1.44GB의 텍스트 파일을로드하고 평가하는 것에 대한 혐오감을 가지고 있기 때문에 결코이 데이터에 실제로 접근 할 수 없다는 사실을 고려하지 않았습니다.대용량 사전 (~ 4000 만 개의 키)의 대체

모든 자료를 한번에 읽지 않고도 데이터에 액세스 할 수 있으려면 shelve과 같은 것을 사용할 수 있습니다. 그러나이 텍스트 파일을 모든 데이터를 재생성하지 않고 선반 파일로 변환하는 방법을 모르겠습니다. (나는 그것을하지 않기를 바랄 것이다). 이 많은 데이터를 저장하고, 액세스하고, 잠재적으로 나중에 변경하는 더 나은 대안이 있습니까? 그렇지 않다면 어떻게이 괴물을 쉘브에서 사용할 수있는 형식으로 변환해야합니까?

가 중요한 경우, 사전 형태 {(int, int, int int): [[int, int], Bool]}

+8

데이터베이스를 사용 하시겠습니까? – Alexander

+2

sqlite 사용 - Python은 표준 라이브러리에서이를 잘 지원합니다. –

+1

Alexander의 코멘트에 추가하려면 ['sqlite3'] (https://docs.python.org/3.6/library/sqlite3.html)이 아마도 가장 낮은 장벽 일 것입니다. – mgilson

답변

0

Redis이다 문제의 종류에 사용될 수있는 메모리 키 - 값을 저장한다.

Python clients이 여러 개 있습니다.

hmset 작업을 사용하면 여러 개의 키 - 값을 삽입 할 수 있습니다.

+0

Took * hmset * idea from https://stackoverflow.com/questions/32276493/how-to-store-and-retrieve-a-dictionary-with-redis –

관련 문제