int()报错invalid literal for int() with base 10: ''

rocksy
  • 73

clipboard.png

上图是数据库表,字段myshp为字符串。

在使用

cx = arcpy.da.UpdateCursor("myshp",["myshp"])

获取游标后,

使用下面的代码

>>> for x in cx:
...     x[0] = int(x[0])
...     

报错:invalid literal for int() with base 10: ''

这是为什么?字符串不能用int()转为整数吗?

回复
阅读 74.4k
2 个回答

根据报错信息判断,尝试将空字符串转换为整数。这是不可以的。

In [1]: a = "1"

In [2]: b = "a"

In [3]: c = ""

In [4]: int(a)
Out[4]: 1

In [5]: int(b)
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-5-ea313f36a39c> in <module>()
----> 1 int(b)

ValueError: invalid literal for int() with base 10: 'a'

In [6]: int(c)
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-6-e60f419938be> in <module>()
----> 1 int(c)

ValueError: invalid literal for int() with base 10: ''

学习python的类型转换

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏