[PYTHON] 이 사전 목록을 CSV 파일로 변환하려면 어떻게합니까?
PYTHON이 사전 목록을 CSV 파일로 변환하려면 어떻게합니까?
다음과 같은 사전 목록이 있습니다.
toCSV = [{'name':'bob','age':25,'weight':200},{'name':'jim','age':31,'weight':180}]
이것을 다음과 같이 보이는 csv 파일로 변환하려면 어떻게해야합니까?
name,age,weight
bob,25,200
jim,31,180
해결법
-
==============================
1.
import csv toCSV = [{'name':'bob','age':25,'weight':200}, {'name':'jim','age':31,'weight':180}] keys = toCSV[0].keys() with open('people.csv', 'wb') as output_file: dict_writer = csv.DictWriter(output_file, keys) dict_writer.writeheader() dict_writer.writerows(toCSV)
편집 : 내 이전 솔루션 주문을 처리하지 않습니다. Wilduck이 언급했듯이 DictWriter가 더 적합합니다.
-
==============================
2.파이썬의 csv 모듈에는 도움이 될 DictWriter가있다.
파이썬의 csv 모듈에는 도움이 될 DictWriter가있다.
-
==============================
3.이것은 하나의 사전 목록을 가지고있을 때입니다 :
이것은 하나의 사전 목록을 가지고있을 때입니다 :
import csv with open('names.csv', 'w') as csvfile: fieldnames = ['first_name', 'last_name'] writer = csv.DictWriter(csvfile, fieldnames=fieldnames) writer.writeheader() writer.writerow({'first_name': 'Baked', 'last_name': 'Beans'})
-
==============================
4.@User와 @BiXiC가 UTF-8에 대한 도움을 요청했기 때문에 여기 @Matthew의 해결책이 다양합니다. (나는 코멘트를 할 수 없다. 그래서 나는 대답한다.)
@User와 @BiXiC가 UTF-8에 대한 도움을 요청했기 때문에 여기 @Matthew의 해결책이 다양합니다. (나는 코멘트를 할 수 없다. 그래서 나는 대답한다.)
import unicodecsv as csv toCSV = [{'name':'bob','age':25,'weight':200}, {'name':'jim','age':31,'weight':180}] keys = toCSV[0].keys() with open('people.csv', 'wb') as output_file: dict_writer = csv.DictWriter(output_file, keys) dict_writer.writeheader() dict_writer.writerows(toCSV)
-
==============================
5.다음은 행 목록 (어쩌면 메모리에 맞지 않음) 또는 헤더 사본 (아마도 write_csv 함수가 일반적 일 수도 있음)이 없다고 가정 할 때 좀더 일반적인 해결책입니다.
다음은 행 목록 (어쩌면 메모리에 맞지 않음) 또는 헤더 사본 (아마도 write_csv 함수가 일반적 일 수도 있음)이 없다고 가정 할 때 좀더 일반적인 해결책입니다.
def gen_rows(): yield OrderedDict(name='bob', age=25, weight=200) yield OrderedDict(name='jim', age=31, weight=180) def write_csv(): it = genrows() first_row = it.next() # __next__ in py3 with open("people.csv", "w") as outfile: wr = csv.DictWriter(outfile, fieldnames=list(first_row)) wr.writeheader() wr.writerow(first_row) wr.writerows(it)
참고 : 여기에 사용 된 OrderedDict 생성자는 python> 3.4에서 순서를 유지합니다. 순서가 중요한 경우 OrderedDict ([( 'name', 'bob'), ( 'age', 25)]) 형식을 사용하십시오.
-
==============================
6.
import csv with open('file_name.csv', 'w') as csv_file: writer = csv.writer(csv_file) writer.writerow(('colum1', 'colum2', 'colum3')) for key, value in dictionary.items(): writer.writerow([key, value[0], value[1]])
이것은 .csv 파일에 데이터를 쓰는 가장 간단한 방법입니다.
from https://stackoverflow.com/questions/3086973/how-do-i-convert-this-list-of-dictionaries-to-a-csv-file by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 이 OpenCV Python 인터페이스들 사이에 다른 점은 무엇입니까? (0) | 2018.10.06 |
---|---|
[PYTHON] try-except를 사용하지 않고 Python에서 keyboardinterrupt 캡처 (0) | 2018.10.06 |
[PYTHON] 파이썬 strftime - 선행 0이없는 날짜? (0) | 2018.10.06 |
[PYTHON] 유형이 지정된 메모리보기에 대해 메모리를 할당하는 권장 방법은 무엇입니까? (0) | 2018.10.06 |
[PYTHON] 파이썬에서 산술 평균 (평균의 한 유형) 계산하기 (0) | 2018.10.06 |