Python:无法修复解析列表时的错误

Python:无法修复解析列表时的错误,python,list,Python,List,我有一个python代码,看起来像这样 trades = self.get_trades(socket) # returns a 2D list print trades #this prints the list for trade in trades : print trade # prints each row in list line print交易打印一个2d,实际上看起来像这样 [['name_1_1_D', '1509230

我有一个python代码,看起来像这样

trades = self.get_trades(socket)  # returns a 2D list
print trades              #this prints the list
for trade in trades :
    print trade           # prints each row in list
line print交易打印一个2d,实际上看起来像这样

[['name_1_1_D', '150923000048067', 'NIFTY15SEP7800CE', 'SELL', 'MKT', 25, 0, 36.
7], ['name_2_1_3', '150923000048824', 'NIFTY15SEP7800CE', 'BUY', 'MKT', 25, 0, 3
5.8], ['name_3_1_M', '150923000049331', 'NIFTY15SEP7800CE', 'BUY', 'MKT', 25, 0,
 36.55], ['name_4_1_E', '150923000049744', 'NIFTY15SEP7800CE', 'SELL', 'MKT', 25
, 0, 36.6], ['name_5_1_5', '150923000051339', 'NIFTY15SEP7800CE', 'BUY', 'MKT',
25, 0, 40.4], ['name_6_1_Q', '150923000052013', 'NIFTY15SEP7800CE', 'SELL', 'MKT
', 25, 0, 38.1]]
但是在打印单个列表元素时,for循环打印交易中的行打印的是这样一个错误的元素

['name_1_1_D', '150923000048067', 'NIFTY15SEP7800CE', 'SELL', '', 25, 0, 0.0]
列表的第5和第8个元素更改为和0.0


我真的不明白为什么会发生这种事情,我的代码的哪一部分是错误的。任何帮助都将不胜感激

它在python 3.4.3下运行良好:

脚本run.py:

检验:

$ python run.py
['name_1_1_D', '150923000048067', 'NIFTY15SEP7800CE', 'SELL', 'MKT', 25, 0, 36.7]
['name_2_1_3', '150923000048824', 'NIFTY15SEP7800CE', 'BUY', 'MKT', 25, 0, 35.8]
['name_3_1_M', '150923000049331', 'NIFTY15SEP7800CE', 'BUY', 'MKT', 25, 0, 36.55]
['name_4_1_E', '150923000049744', 'NIFTY15SEP7800CE', 'SELL', 'MKT', 25, 0, 36.6]
['name_5_1_5', '150923000051339', 'NIFTY15SEP7800CE', 'BUY', 'MKT', 25, 0, 40.4]
['name_6_1_Q', '150923000052013', 'NIFTY15SEP7800CE', 'SELL', 'MKT', 25, 0, 38.1]

在python 2.9.10中也可以正常工作:

trades = [['name_1_1_D', '150923000048067', 'NIFTY15SEP7800CE','SELL', 'MKT', 25, 0, 36.7],
          ['name_2_1_3', '150923000048824', 'NIFTY15SEP7800CE', 'BUY', 'MKT', 25, 0, 35.8],
          ['name_3_1_M', '150923000049331', 'NIFTY15SEP7800CE', 'BUY', 'MKT', 25, 0, 36.55],
          ['name_4_1_E', '150923000049744', 'NIFTY15SEP7800CE', 'SELL', 'MKT', 25 , 0, 36.6],
          ['name_5_1_5', '150923000051339', 'NIFTY15SEP7800CE', 'BUY', 'MKT', 25, 0, 40.4],
          ['name_6_1_Q', '150923000052013', 'NIFTY15SEP7800CE', 'SELL', 'MKT ', 25, 0, 38.1]]

print trades

for trade in trades:
    print trade

我认为在来自套接字的数据流中有换行符。 显然,简单地输入数据并运行代码不会复制您的情况。
测试数据中来自套接字的数据中是否有多余字符。

我在python 3中运行了这段代码。它显示所有的值,在打印交易和折价交易之间没有其他行:打印交易?是的,没有其他行。您使用的是什么python版本?它工作正常。我不认为他们的代码有任何问题。。为python2.x工作,也是为了找到答案。这似乎是数据中新线字符的问题。如果这个答案确实解决了问题,您可以接受这个答案,这将表明问题已经解决,并给我几分;
trades = [['name_1_1_D', '150923000048067', 'NIFTY15SEP7800CE','SELL', 'MKT', 25, 0, 36.7],
          ['name_2_1_3', '150923000048824', 'NIFTY15SEP7800CE', 'BUY', 'MKT', 25, 0, 35.8],
          ['name_3_1_M', '150923000049331', 'NIFTY15SEP7800CE', 'BUY', 'MKT', 25, 0, 36.55],
          ['name_4_1_E', '150923000049744', 'NIFTY15SEP7800CE', 'SELL', 'MKT', 25 , 0, 36.6],
          ['name_5_1_5', '150923000051339', 'NIFTY15SEP7800CE', 'BUY', 'MKT', 25, 0, 40.4],
          ['name_6_1_Q', '150923000052013', 'NIFTY15SEP7800CE', 'SELL', 'MKT ', 25, 0, 38.1]]

print trades

for trade in trades:
    print trade