목록이있는 사전을 가져 와서 해당 목록을 CSV 파일에 쓰는 스크립트를 작성하려고합니다. 다음과 같이 내가 가진 코드는 다음과 같습니다csv.writerows는 출력 CSV 파일에 목록을 문자열로 씁니다.
import csv
data = {'a': [1, 2, 3, 4], 'b': [5,6,7,8]}
shape = {'a': ['round', 'square'], 'b': ['triangle', 'oval']}
size = {'a': [100, 1000], 'b': [750, 750]}
with open('test.csv', 'w+') as f_raw:
writer = csv.writer(f_raw, delimiter=',', lineterminator='\n')
for id in data.keys():
line = [id, data[id], shape[id], size[id]]
writer.writerow(line)
출력 CSV 파일은 그 캐릭터 만들기, 모든 목록은 인용 부호로 묶
a,"[1, 2, 3, 4]","['round', 'square']","[100, 1000]"
b,"[5, 6, 7, 8]","['triangle', 'oval']","[750, 750]"
의 형식을 취합니다. 목록으로 남아 있기를 바랍니다. 그래서 읽을 때, 파이썬은 그것들을 문자열이 아닌 목록으로 인식합니다. 이 문제의 원인은 무엇입니까? I 파이썬 3.6
이 사용 사례는 json을 조사해야합니다. –
이것은 csv 형식을 손상시킬 것입니다. 쉼표가 포함 된 데이터를 추가하기 때문에 따옴표가 추가되고 구분 기호는 쉼표입니다. Chet와는 다른 형식으로 살펴보고 싶을 것입니다. 쉼표가 열 또는 구분 기호에있는 데이터의 일부인지 여부를 판별하기는 어렵습니다. – Kyle
파이썬이 그들을 읽으면 * lists *로 인식되지 않습니다. 파이썬은 어쨌든 * 문자열로 그것들을 읽을 것입니다. * 당신은 * 객체 직렬화를 찾고있는 것처럼 들립니다. CSV (예 : DataFrame, 문자열의 간단한 목록)에서 개체를 쉽게 재구성 할 수없는 경우 CSV가 적합하지 않습니다. JSON이나'pickle'을 조사해야하는데, 후자는 거의 모든 Python 객체를 지원해야하며, 전자는 숫자, 문자열, 없음, 목록 또는 딕트가있는 목록 및 딕트를 지원합니다. JSON은 꼭 필요한 것 같아서'json' 모듈을 사용하십시오. –