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

converting string with Apostrophes to long (not int)

如何将带有“70”(带有撇号)的字符串转换为长字符串

代码:

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

错误:ValueError:以 10 为底的 long() 无效文字:'"70"'

strip 转换前去掉引号。

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

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

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

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

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

先使用 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