2016-08-30 3 views
0

Jupyter 노트북에서 CSV 파일로 내보내려고합니다. 문서에서 복사 - 붙여 넣기 예제를 테스트 할 때 (아래 참조), "str '객체를 호출 할 수 없습니다"오류 메시지가 나타납니다. 나는 매개 변수를 끝없이 피로. Pandas 데이터 프레임에서도 똑같은 일이 발생하며 to_csv를 사용하려고합니다.Python에서 여러 형식으로 CSV로 내보낼 수 없습니다.

는 기본적으로 :

import csv 
with open('eggs.csv', 'w', newline='') as csvfile: 
    spamwriter = csv.writer(csvfile) 

TypeError         Traceback (most recent call last) 
<ipython-input-169-cc34b7e892ee> in <module>() 
    1 import csv 
    2 with open('eggs.csv', 'w', newline='') as csvfile: 
----> 3  spamwriter = csv.writer(csvfile) 

TypeError: 'str' object is not callable 

내가 코딩에 새로운, 그래서 난 정말이 시점 과거의 문제를 해결하는 방법을 모른다 ... 사람이 도움을 줄 수 산출?

+0

eggs.csv에는 어떤 것이 있습니까? – thesonyman101

+0

전체 코드가 표시되지 않는 이유는 무엇입니까? –

+0

이 예제를 로컬에서 실행하면 일반 터미널과 jupyter 노트북에서 모두 작동합니다. 오류의 원인은 비표준 csv 모듈이 설치되어 있거나 "csv"(예 :'csv.writer = "egg.csv"')를 가져온 후에 다른 코드를 실행했기 때문입니다. 나는 새로운 Jupyter 노트북을 열고 그 3 줄만 신선한 것을 시도하는 것이 좋습니다. – Pasha

답변

0

표시되는 오류는 csv.writer이 문자열 인 경우에만 설명 할 수 있습니다. 난 당신이 중 하나를 기본적으로 실행되도록 코드를 살아 단일 세션을 유지 스파이더와 같은 환경에서 작업하거나 IPython 또는 같은 REPL에서 실험하고 추측하고있어

In [1]: import csv 

In [2]: csv.writer = 'test' # <- cause error 

In [3]: %paste 
import csv 
with open('eggs.csv', 'w', newline='') as csvfile: 
    spamwriter = csv.writer(csvfile) 

## -- End pasted text -- 
--------------------------------------------------------------------------- 
TypeError         Traceback (most recent call last) 
<ipython-input-3-cc34b7e892ee> in <module>() 
     1 import csv 
     2 with open('eggs.csv', 'w', newline='') as csvfile: 
----> 3  spamwriter = csv.writer(csvfile) 

TypeError: 'str' object is not callable 

: 이것은 당신의 오류를 재현 주피터 노트북입니다. 어느 시점에서 실수로 csv.writer에 새 값을 지정했습니다. 코드를 잘못해서 문제가 없으므로 환경을 재설정하면 문제가 해결됩니다.

재설정하려면 IPython 또는 Spyder를 종료하고 다시 시작하십시오. Jupyter 노트북의 경우 메뉴에서 "Kernel | Restart"를 선택하십시오.

+0

사실, 커널을 다시 시작하면 모든 문제가 해결되었습니다. 나는 그것을 시도하지 않았기 때문에 꽤 어리 석다. 그래서 나는 진실로 배경 설명과 snark의 부족에 감사한다. – smagali

관련 문제