2013-05-02 4 views
0

파일에 가입 한 후 다음 오류로 실행 한 후 일부 값을 쓰려고합니다.이 오류를 수정하는 방법에 대한 정보는 무엇입니까?값 목록을 합친 후 파일에 쓰는 동안 오류가 발생했습니다.

data_changes ={'305403': ['302180'], '312994': ['311957'], '311957': ['312621'] } 
modem_changes = {'305403': [], '313113': [], '312994': ['253036', '312591'], '311957': []} 

dc_set = set(data_changes) 
mc_set = set(modem_changes) 

with open('file.txt', 'w+') as f: 
    for key in dc_set.intersection(mc_set): 
     union_values = data_changes[key] + modem_changes[key] 
     values = key, ','.join(union_values) 
     f.write(values) 

with open('file.txt', 'a') as f: 
    for key in dc_set.symmetric_difference(mc_set): 
     dc_values = data_changes.get(key) or [] 
     mc_values = data_changes.get(key) or [] 
     union_values = dc_values + mc_values 
     values=key, ','.join(union_values) 
     f.write(values) 

오류 : -

Traceback (most recent call last): 
    File "final_build_list.py", line 31, in <module> 
    f.write(values) 
TypeError: argument 1 must be string or read-only character buffer, not tuple 

답변

5

values=key, ','.join(union_values)tuple하지 string 그리고 당신은 파일에 튜플을 쓸 수 없습니다.

values= "{0}, {1}\n".format(key, ','.join(union_values)) 

예 :

data_changes ={'305403': ['302180'], '312994': ['311957'], '311957': ['312621'] } 
modem_changes = {'305403': [], '313113': [], '312994': ['253036', '312591'], '311957': []} 

dc_set = set(data_changes) 
mc_set = set(modem_changes) 

with open('abc', 'w+') as f: 
    for key in dc_set.intersection(mc_set): 
     union_values = data_changes[key] + modem_changes[key] 
     values= "{0}, {1}\n".format(key, ','.join(union_values)) 
     f.write(values) 

출력 (ABC의 내용) :

>>> foo = 1,2 # comma separated values on RHS are converted to tuple 
>>> type(foo) 
<type 'tuple'> 

당신이 찾고 있던 수 있음

311957, 312621 
305403, 302180 
312994, 311957,253036,312591 
+0

무엇을합니까 {0}과 {1 }는 왜?, {0}, {1} 뿐인 이유는 무엇입니까? {2}도 아닙니다. – user2341103

+0

내 마지막 목표는 파일에 "key, ','join (union_values)"을 넣는 것입니다. – user2341103

+0

@ user2341103 {0} 형식화 할 첫 번째 인수가 놓일 위치와 {1}이 두 번째 위치 논의. 문자열 형식에 대해 자세히 알아보기 : http://docs.python.org/2/library/string.html#format-examples –

관련 문제