상당히 큰 JSON 파일 읽기
큰 json 인코딩 파일이 몇 개 있어요.가장 작은 것은 300MB, 나머지는 약 2GB에서 10GB 이상의 여러 GB입니다.
Python에 파일을 로드하려고 하면 메모리가 부족한 것 같습니다.
이 코드를 사용하여 성능을 테스트했습니다.
from datetime import datetime
import json
print datetime.now()
f = open('file.json', 'r')
json.load(f)
f.close()
print datetime.now()
별로 놀랍지 않게, 이것이 원인이 됩니다.MemoryError...인 것 같습니다.json.load()콜json.loads(f.read())파일 전체를 먼저 메모리에 덤프하려고 합니다.이것은 확실히 동작하지 않습니다.
어떻게 하면 깨끗하게 해결할 수 있을까요?
오래된 건 알지만 복제품은 아닌 것 같아요.답은 같지만 질문은 다릅니다.「복제」에서는, 대용량 파일을 효율적으로 읽어내는 방법이 문제지만, 이 질문은 메모리에 전혀 들어가지 않는 파일에 대해 다루고 있습니다.효율은 필요 없습니다.
여기서의 문제는 JSON이 포맷으로서 일반적으로 풀 해석되고 다음으로 메모리 내에서 처리된다는 것입니다.이러한 대량의 데이터에는 분명히 문제가 있습니다.
이 문제를 해결하려면 데이터를 파일의 스트림으로 읽고 작업한 다음 반복하는 작업을 수행합니다.
가장 좋은 옵션은 블록 파일이 아닌 스트림으로 JSON과 함께 작동하는 모듈인 ijson과 같은 것을 사용하는 것으로 보입니다.
편집: 또한 볼만한 가치가 있습니다.- Kashif의 코멘트와 Henrik Heino의 코멘트는 에 대해.
언급URL : https://stackoverflow.com/questions/10382253/reading-rather-large-json-files
'codememo' 카테고리의 다른 글
| Netflix Feign - 마이크로 서비스를 통해 상태 및 예외 전파 (0) | 2023.04.03 |
|---|---|
| Wordpress - 사용자 지정 투고 유형에 피쳐 이미지 추가 (0) | 2023.04.03 |
| NextJS _app.tsx 컴포넌트 및 pageProps의 TypeScript 유형을 선택합니다. (0) | 2023.04.03 |
| registerServiceWorker는 React JS에서 무엇을 합니까? (0) | 2023.04.03 |
| 리액트 테스트 라이브러리에서 버튼이 비활성화되었는지 확인합니다. (0) | 2023.04.03 |