[PYTHON] csv 파일을 사전 목록으로 변환
PYTHONcsv 파일을 사전 목록으로 변환
나는 CSV 파일을 가지고있다.
col1, col2, col3
1, 2, 3
4, 5, 6
이 CSV에서 사전 목록을 만들고 싶습니다.
다음과 같이 출력 :
a= [{'col1':1, 'col2':2, 'col3':3}, {'col1':4, 'col2':5, 'col3':6}]
어떻게해야합니까?
해결법
-
==============================
1.csv.DictReader 사용 :
csv.DictReader 사용 :
>>> import csv >>> >>> with open('test.csv') as f: ... a = [{k: int(v) for k, v in row.items()} ... for row in csv.DictReader(f, skipinitialspace=True)] ... >>> a [{'col2': 2, 'col3': 3, 'col1': 1}, {'col2': 5, 'col3': 6, 'col1': 4}]
-
==============================
2.csv 모듈 및 목록 이해 사용 :
csv 모듈 및 목록 이해 사용 :
import csv with open('foo.csv') as f: reader = csv.reader(f, skipinitialspace=True) header = next(reader) a = [dict(zip(header, map(int, row))) for row in reader] print a
산출:
[{'col3': 3, 'col2': 2, 'col1': 1}, {'col3': 6, 'col2': 5, 'col1': 4}]
-
==============================
3.또 다른 간단한 대답 :
또 다른 간단한 대답 :
import csv with open("configure_column_mapping_logic.csv", "r") as f: reader = csv.DictReader(f) a = list(reader) print a
-
==============================
4.글쎄요, 다른 사람들이 똑똑한 방법으로 일하는 동안, 나는 그것을 순진하게 구현했습니다. 필자의 접근 방식은 외부 모듈을 필요로하지 않는 이점이 있지만, 아마도 이상한 구성의 값으로 실패 할 것입니다. 여기서는 참고 목적으로 만 사용됩니다.
글쎄요, 다른 사람들이 똑똑한 방법으로 일하는 동안, 나는 그것을 순진하게 구현했습니다. 필자의 접근 방식은 외부 모듈을 필요로하지 않는 이점이 있지만, 아마도 이상한 구성의 값으로 실패 할 것입니다. 여기서는 참고 목적으로 만 사용됩니다.
a = [] with open("csv.txt") as myfile: firstline = True for line in myfile: if firstline: mykeys = "".join(line.split()).split(',') firstline = False else: values = "".join(line.split()).split(',') a.append({mykeys[n]:values[n] for n in range(0,len(mykeys))})
-
==============================
5.
# similar solution via namedtuple: import csv from collections import namedtuple with open('foo.csv') as f: fh = csv.reader(open(f, "rU"), delimiter=',', dialect=csv.excel_tab) headers = fh.next() Row = namedtuple('Row', headers) list_of_dicts = [Row._make(i)._asdict() for i in fh]
-
==============================
6.사전 목록으로 CSV를 구문 분석하는 간단한 방법
사전 목록으로 CSV를 구문 분석하는 간단한 방법
with open('/home/mitul/Desktop/OPENEBS/test.csv', 'rb') as infile: header = infile.readline().split(",") for line in infile: fields = line.split(",") entry = {} for i,value in enumerate(fields): entry[header[i].strip()] = value.strip() data.append(entry)
-
==============================
7.CSV 파일 (2 열, 여러 행, 헤더 없음)을 사전 목록으로 변환하려면 CSV 모듈을 사용했습니다. 내 CSV 파일은 다음과 같습니다.
CSV 파일 (2 열, 여러 행, 헤더 없음)을 사전 목록으로 변환하려면 CSV 모듈을 사용했습니다. 내 CSV 파일은 다음과 같습니다.
c1,-------- c14,EAE23ED3 c15,--------
사전 목록 (키쌍, 값 쌍)으로 csv 파일의 각 행을 사전으로 만들고 싶습니다. 내가 원하는 출력은 다음과 같습니다.
[ { "c1": "--------" }, { "c14": "EAE23ED3" }, { "c15": "--------" } ]
이렇게하려면 아래 코드를 사용했습니다.
import csv csv_path = '.../input_file.csv' mylist = [] mydict = {} # read the csv and write to a dictionary with open(csv_path, 'rb') as csv_file: reader = csv.reader(csv_file) for row in reader: mydict = {row[0]:row[1]} mylist.append(mydict) print(mylist)
내 경우 엔 효과가있어. 내 문제를 해결하기 위해 다음 게시물이 도움이되었습니다.
from https://stackoverflow.com/questions/21572175/convert-csv-file-to-list-of-dictionaries by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] Linux의 Python 환경 변수 (0) | 2018.11.09 |
---|---|
[PYTHON] 사전 갱신 시퀀스 요소 # 0은 길이가 3이고; 2가 필요합니다. (0) | 2018.11.09 |
[PYTHON] 아름다운 수프에 중첩 된 요소를 얻는 방법 (0) | 2018.11.09 |
[PYTHON] Django 템플릿에서 Humanize를 사용하여 "x 일 전"유형 시간을 표시하는 방법은 무엇입니까? (0) | 2018.11.09 |
[PYTHON] 함수 호출 세부 정보를 출력하는 데코레이터 - 매개 변수 이름과 유효 값 (0) | 2018.11.09 |