将带有Apostrophes的字符串转换为long(不是int)

时间:2015-01-20 13:51:18

标签: python python-2.7

如何将字符串“70”(使用Apostrophes)转换为长

代码:

 gap = long(x.film_index)-   long (expected_film)

错误:ValueError:long()的基数为10的文字无效:'“70”'

3 个答案:

答案 0 :(得分:4)

在转换之前,

strip取消引号。

>>> x = "\"70\""
>>> long(x.strip("\""))
70L

答案 1 :(得分:1)

您可以使用正则表达式仅提取给定字符串中的数字:

import re
long(re.match(r'\d+', '"70"').group())

但是,如果您知道您的号码将始终包围" s,那么您可以轻松地从其中构建新的int,而无需使用第一个和最后一个字符:

long('"70"'.strip('"'))  # or long('"70"'.replace('"', ''))

答案 2 :(得分:1)

如何首先使用replace()删除引号?

>>> x = '"70"'
>>> x
'"70"'
>>> long(x)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for long() with base 10: '"70"'

>>> long(x.replace('"', ''))
70L