Programing

파이썬 사전을 csv 파일에 어떻게 작성합니까?

crosscheck 2020. 8. 13. 07:51
반응형

파이썬 사전을 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

반응형