큰 배열을 json 형식으로 인코딩 할 때 json.dump()
또는 json.dumps()
중 어느 것이 가장 효율적인지 알고 싶습니다.json.dumps()를 사용하여 MemoryError
json.dump()
을 사용하는 예를 보여줄 수 있습니까?
사실 나는 ORM SQlAlchemy를 사용하여 MySQL 데이터베이스에서 많은 양의 데이터를 가져 오는 Python CGI를 만들고 일부 사용자가 처리를 트리거 한 후에 최종적으로 Json으로 변환하는 Array에 최종 출력을 저장합니다.
그러나와 JSON으로 변환 할 때 :
Traceback (most recent call last):
File "C:/script/cgi/translate_parameters.py", line 617, in <module>
f.write(json.dumps(mytab,default=dthandler,indent=4))
File "C:\Python27\lib\json\__init__.py", line 250, in dumps
sort_keys=sort_keys, **kw).encode(obj)
File "C:\Python27\lib\json\encoder.py", line 209, in encode
chunks = list(chunks)
MemoryError
그래서, 내 생각 엔 덩어리로 데이터를 변환 json.dump()
을 사용하고 있습니다 :
print json.dumps({'success': True, 'data': data}) #data is my array
나는 다음과 같은 오류가 발생합니다. 이 작업을 수행하는 방법에 대한 아이디어가 있습니까?
json.dump()
이외의 다른 아이디어입니까?
구현 세부 사항을 모르지만 '덤프 (dumps)'결과는 문자열로 출력됩니다.이 문자열은 빌드되어 메모리에 보관되어야합니다. '덤프 (dump) '는 스트리밍되어 메모리에 결과를 저장하지 않을 것으로 가정하는 파일에 기록합니다. – Joe
'chunk'는'JSON.Encoder(). iterencode()'생성자에 의해 생성됩니다. 내 대답을 보라. –