如何在Python 2.7中使用raw_input捕获EOFError上的值?

时间:2019-05-23 07:50:06

标签: python python-2.7

原始数据

k = {u'description': u'First Contentful Paint marks the time at which the first text or image is painted. [Learn more].', u'title': u'First Contentful Paint', u'score': 1.0, u'scoreDisplayMode': u'numeric', u'displayValue': u'0.5\xa0s', u'id': u'first-contentful-paint'}

代码段:

data = k["lighthouseResult"]["audits"]["first-contentful-paint"]["displayValue"]

try:
    val = raw_input(data.encode("utf-8"))
except EOFError:
    print("skipped")

print "output: " + val

在上述代码段中,如何将结果存储在val中;在行EOFError上有val = raw_input(data.encode("utf-8"))

时,跳过该步骤

这是我得到的实际输出,我无法将值x.x s存储在变量中

0.5 sskipped

output: 

预期:

output: 0.5s

Python版本:2.7

2 个答案:

答案 0 :(得分:1)

解码'0.5\xa0s'的一种方法是使用unicode内置函数将其转换为unicode,并告诉它忽略非utf-8字符,然后将其转换为字符串

>>> a = '0.5\xa0s'
>>> str(unicode(a, errors='ignore'))
'0.5s'

答案 1 :(得分:0)

正如Devesh解释的那样,我忽略了这些错误以摆脱我所面临的问题。

>>> a = '0.5\xa0s'
>>> a.encode(encoding="ascii", errors="ignore")
'0.5s'