当转换为Float时,Python/py解析结果

当转换为Float时,Python/py解析结果,python,pyparsing,Python,Pyparsing,我从另一个问题中找到了以下示例: 它有一些类似以下的pyparsing代码: from pyparsing import * survey = '''GPS,PN1,LA52.125133215643,LN21.031048525561,EL116.898812''' number = Word(nums+'.').setParseAction(lambda t: float(t[0])) separator = Suppress(',') latitude = Suppress('LA'

我从另一个问题中找到了以下示例:

它有一些类似以下的pyparsing代码:

from pyparsing import *

survey = '''GPS,PN1,LA52.125133215643,LN21.031048525561,EL116.898812'''

number = Word(nums+'.').setParseAction(lambda t: float(t[0]))
separator = Suppress(',')
latitude = Suppress('LA') + number
longitude = Suppress('LN') + number
elevation = Suppress('EL') + number

line = (Suppress('GPS,PN1,')
        + latitude
        + separator
        + longitude
        + separator
        + elevation)

print line.parseString(survey)
它说输出是:

[52.125133215643, 21.031048525561, 116.898812]
但是,我得到以下输出:

[W:(0123...), W:(0123...), W:(0123...)]
如何获得浮点输出而不是这些“W:(0123…)”值


谢谢

我升级了python和pyparsing版本,但仍然无法正常工作。然而,第二天早上,它突然工作得很好。我不知道为什么,也许一夜之间的重启起了作用。无论哪种方式,它现在似乎都正常工作。

当我在Python3.2上运行它时(只是更改
print
语句),我得到了
[52.125…]
输出。您使用的是什么版本的Python和
pyparsing
?要找到后者,请执行
importpyparsing
,然后执行
print(pyparsing.\uu版本\uuu)
@senshin:我使用的是python 2.7.5和pyparsing 1.5.7。您使用的是什么版本的pyparsing?我可以尝试使用pyparsing 2.0.1,但我链接到的那篇文章是从2011年开始的,所以pyparsing在当时甚至比1.5.7还要旧。这篇文章在pyparsing 1.5.7发布之前就已经写好了。不知道这里发生了什么,抱歉。我有Py2.01,并且在Py3.3.3和Py2.7.6上都试过了。我得到了正确的输出。我想说你对pyparsing安装有问题……这很奇怪——我还有Python2.7.5和pyparsing版本1.5.7,并且得到了正确的输出。