2015-09-22 2 views
0

У меня есть некоторые данные в моем файле.ValueError: слишком много значений для распаковки полосы

phone=408-456-7890&param1=2&param2=12&param3=0 
phone=510-543-7891&param1=1&param2=12&param3=1 
phone=650-857-7892&param1=4&param2=12&param3=2 

Это мой код:

with open('myfile.txt', 'r') as fh: 
    data = fh.read() 

for i in data.split('&'): 
    l = i.strip() 
    if l: 
     k,v = l.split('=') 
     print k,v 

ValueError: too many values to unpack

Я сделал распечатку каждой строки.

Я получаю разрывы строк. Я не уверен, что происходит.

['phone', '408-456-7890'] 
['param1', '2'] 
['param2', '12'] 
['param3', '0\nphone', '510-543-7891'] 

ответ

1

Почему бы вам не попробовать зачистки новых линий при чтении построчно:

>>> with open('myfile.txt', 'r') as fh: 
...  for l in fh.readlines(): 
...   for pair in l.strip().split("&"): 
...    k, v = pair.split("=") 
...    print k, v 

'phone', '408-456-7890' 
'param1', '2' 
'param2', '12' 
'param3', '0' 
+0

Тогда я не могу разделить. – Newbie

+0

@ Падди, почему вы думаете, что не можете разделиться? В каждой строке 'l' будет выглядеть так:' phone = 408-456-7890 & param1 = 2 & param2 = 12 & param3 = 0' – ozgur

+0

Я попытался, и это дало мне ошибку. – Newbie