파이썬 사전 목록을 파일에 작성하고 싶습니다. 그러나 사전을 유지하려면 사전 (및 목록)이 필요합니다. 즉, 처리를 위해 파일을로드 할 때 사전을 사용하고 문자열로 작업하지 않아도됩니다.파이썬 사전을 문자열로 만들지 않고 파일에 쓰는 방법?
여기에 데이터를 문자열로 쓰는 샘플 코드가 있습니다. 실제 파이썬 데이터 구조를 유지하는 방법이 있습니다 (목록 데이터에는 수십 개의 사전이 있으며, 각각의 값은 수백 개의 목록을 가질 수 있습니다) . 필자는 여러 가지 이유로 데이터를 간단하게 피클링 할 수 없습니다 (그 중 하나는 파일을 사람이 읽을 수 있어야합니다).
import csv
import pandas as pd
def write_csv_file(data, iteration):
with open('%s.csv' % 'name', 'wb') as data_csv:
writer_data = csv.writer(data_csv, delimiter=',')
for d in data:
writer_data.writerow([iteration] + [d])
data = [{'a':1, 'b':2}, {'e':[1], 'f':[2,10]}]
iteration = 1
write_csv_file(data, iteration)
현재 나는 데이터를 처리하기 위해 다음과 같은 방식으로 팬더를 사용하여 데이터 파일을 읽습니다.
d = pd.read_csv('name.csv')
d = pd.DataFrame(d)
** 불가능 **. 파일에 쓰거나 * 읽는 모든 것은'string'입니다. 'dict'에서'string'으로 또는 그 반대로 이동하는 영리한 방법을 찾아야합니다.또는 어떤 종류의 라이브러리를 사용하십시오. –
몇 가지 형식의 serialization이 필요합니다. 'pickle' 또는'json'. – Norrius
@ Ev.Kounis 그게 스트레치예요. 어떻게 문자열을 정의합니까? 나에게 그것은 인간이 읽을 수있는 일련의 등장 인물이다. 그러나 파일은 바이트를 처리합니다. 파일에 임의의 바이트 시퀀스를 쓸 수 있습니다. 예를 들어,'pickle'으로 생성 된 직렬화 된 사전을 사용할 수 있습니다. – timgeb