ValueError: too many values to unpack strip

ValueError: too many values to unpack strip

我的文件中有如下数据。

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']

你为什么不尝试在逐行阅读时去除新行:

>>> 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'