我正在尝试使用python作为CSV文件保存一些数据,同时尝试将字符串(数字图标)转换为int。
style_tag = soup.select('style')
icons = (str(style_tag[1]).split("."))
mp = {}
for e in icons:
if "icon-" in e:
if "content" in e:
mp[e.split("{")[0].split(":")[0]] = (int(e.split('"')[1][-2:])) - 1
上面的行显示了错误
mp[e.split("{")[0].split(":")[0]] = (int(e.split('"')[1][-2:])) - 1
ValueError: invalid literal for int() with base 10: '-'
答案 0 :(得分:0)
代替这一行:
mp[e.split("{")[0].split(":")[0]] = (int(e.split('"')[1][-2:])) - 1
尝试一下:
key_ = e.split("{")[0].split(":")[0]
val_ = e.split('"')[1][-2:]
try:
val_int = int(val_) - 1
mp[key_] = val_int
except Exception:
pass
答案 1 :(得分:0)
问题来自
int(e.split('"')[1][-2:])
您尝试在int中转换的表达式的结果是字符'-',而python无法将其解释为int。 问题只是您没有使用
选择您的数据的正确部分e.split('"')[1][-2:]
为帮助您更多,我们需要您的数据样本。