2014-11-22 2 views
1

2 열의 CSV 파일이 있습니다. 첫 번째 열을 키로 저장하고 두 번째 값을 사전에 저장하고 출력 파일로 저장하려고합니다.사전 대 매트릭스 변환

import math 
import numpy 
import csv 
from decimal import * 
#opening Result file with 
open('output.csv','rb') as file: 
    contents = csv.reader(file) 
#storing content of Result file in matrix 
matrix = list() 
    for row in contents: 
    matrix.append(row) 
lookup = dict(matrix) # Storing 2 columns of matrix as key:value in dictionary 
# open a new csv file for writing. 
csv_out = open('MPA.csv', 'wb') 
mywriter = csv.writer(csv_out)`` 
csv_out.close() 

나는 원하는 출력을 생성하지 못하는이 코드를 작성했습니다.

+0

무엇 출력 당신은 기대하고 있으며 코드가 생성하는 것은 무엇입니까? 몇 가지 오류가 발생하거나 잘못된 결과를 생성합니까? –

+0

키 n 값을 사용하여 출력 csv 파일을 작성하고 싶습니다. 그것은 빈 출력 파일을 생성합니다. –

+0

하지만 입력 내용이'key, value' 열이있는 csv 파일이므로 출력이 어떻게 다릅니 까? – Eric

답변

0
import csv 
import json 

with open('test.csv') as f: 
    with open('MPC.json', 'w') as g: 
    json.dump(dict([(v[0], v[1]) for v in csv.reader(f)]), g) 
0

당신은 csv.writer를 만들고 있지만 파일에는 아무 것도 쓰지 않습니다. 이것은 빈 파일의 이유입니다. 파일을 닫기 전에 아래 줄을 추가

csv_out = open('MPA.csv', 'wb') 
mywriter.writerows(lookup.items()) # Add this line. 
csv_out.close() 

이 교체 대신 쉼표을로 구분하여 데이터를 원하는 경우 :

mywriter = csv.writer(csv_out) 

기준 :

mywriter = csv.writer(csv_out, delimiter='\t') 
+0

O 정말 고마워. 그것은 파일을 썼다. 파일이 그 이전 RAB10 \t -0.016575 MEF2C \t -0.019655 SP2 \t 1.24E-01 SP2 \t 0.18870625 SP2 \t 0.0879425 ICK \t -0.02534625 JAG1 \t처럼처럼하지만 모든 중복 키와 해당 값 을 제거 -0.01105125 하지만 지금은 FOXQ1 \t -0.0905225 된다 CBLB \t -0.00853 PPP2R2D \t 0.117835 SP2 \t 0.0879425 SP4 \t -0.02329625 PPP2R2C \t 0.138485 MUC4 \t 0.0942 MGEA5 \t -0.020625 는 SP2가 이제이 유는 많은 도움이 –

+0

감사를 제거하고 반복을 의미합니다 –