当转换为Float时,Python/py解析结果
我从另一个问题中找到了以下示例: 它有一些类似以下的pyparsing代码:当转换为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'
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,并且得到了正确的输出。