파이썬 사전을 csv 파일에 어떻게 작성합니까? [복제]
나는 내가 해결할 수없는 매우 쉬운 일이되어야한다고 생각한다.
파이썬 사전을 csv 파일에 어떻게 작성합니까? 내가 원하는 것은 파일의 맨 위 행에 사전 키를 쓰고 두 번째 행에 키 값을 쓰는 것입니다.
내가 온 가장 가까운 것은 다음과 같습니다 (다른 사람의 게시물에서 얻었습니다).
f = open('mycsvfile.csv','wb')
w = csv.DictWriter(f,my_dict.keys())
w.writerows(my_dict)
f.close()
문제는 위의 코드가 첫 번째 줄에만 키를 쓰는 것처럼 보이며 그게 전부입니다. 두 번째 줄에 쓰여진 값을 얻지 못합니다.
어떤 아이디어?
DictWriter.writerows()딕셔너리가 아닌 딕셔너리 목록이 필요한 것을 사용 하고 있습니다. DictWriter.writerow()단일 행을 작성 하려고 합니다.
DictWriter.writeheader()csv 파일에 대한 헤더가 필요한 경우 에도 사용하고 싶을 것 입니다.
또한 체크 아웃 할 수 있습니다 문을 위해 파일을 열 . 더 비단뱀적이고 읽기 쉬울뿐만 아니라 예외가 발생하더라도 닫기를 처리합니다.with
변경된 예 :
import csv
my_dict = {"test": 1, "testing": 2}
with open('mycsvfile.csv', 'wb') as f: # Just use 'w' mode in 3.x
w = csv.DictWriter(f, my_dict.keys())
w.writeheader()
w.writerow(my_dict)
다음을 생성합니다.
test,testing
1,2
귀하의 코드는 작동 에 매우 가깝습니다.
정규 사용해보십시오 csv.writer 보다는 DictWriter을 . 후자는 주로 사전 목록을 작성하는 데 사용됩니다.
다음은 각 키 / 값 쌍을 별도의 행에 쓰는 코드입니다.
import csv
somedict = dict(raymond='red', rachel='blue', matthew='green')
with open('mycsvfile.csv','wb') as f:
w = csv.writer(f)
w.writerows(somedict.items())
대신 한 행의 모든 키와 다음 행의 모든 값을 원하는 경우도 쉽습니다.
with open('mycsvfile.csv','wb') as f:
w = csv.writer(f)
w.writerow(somedict.keys())
w.writerow(somedict.values())
프로 팁 : 이와 같은 코드를 개발할 때 w = csv.writer(sys.stderr)생성되는 내용을 더 쉽게 볼 수 있도록 작성 기를로 설정 하십시오. 논리가 완성되면로 다시 전환하십시오 w = csv.writer(f).
이 간단한 작업에 csv를 사용하는 이유는 무엇입니까?
keys,values=zip(*my_dict.items())
print >>f, ", ".join(keys)
print >>f, ", ".join(values)
f.close()
두 가지 방법으로 파이썬을 사용합니다.
1. As a proper language where I want all software engineering principles to hold in my code.
2. As a scripting language, where I want to just get something done and the code I write for this is not meant for reuse.
내 대답은 두 번째 목적에만 유용합니다. 또한 이러한 모든 모듈과 개별 기능을 기억하는 데 따른 고통도 고려합니다.
참고 URL : https://stackoverflow.com/questions/10373247/how-do-i-write-a-python-dictionary-to-a-csv-file
'Programing' 카테고리의 다른 글
| 클래스 메소드를 생성하기 위해 define_method를 어떻게 사용합니까? (0) | 2020.08.13 |
|---|---|
| 소스 변경시 gunicorn 자동 새로 고침 (0) | 2020.08.13 |
| 조건부 바인딩 : 오류가 발생한 경우 – 조건부 바인딩의 이니셜 라이저에는 선택적 유형이 있어야합니다. (0) | 2020.08.13 |
| 다른 값을 기준으로 한 벡터를 정렬하는 방법 (0) | 2020.08.13 |
| 파일 설명자와 파일 포인터의 차이점은 무엇입니까? (0) | 2020.08.13 |