Как перевести строки из list в int?
Я пытался fov = int(fov) но выдаёт ValueError: invalid literal for int() with base 10: '"'
import configparser as cfg
config = cfg.ConfigParser()
config.read("settings.ini")
fov = config["NAIM"]["fov"]
print(fov + 1)
Вывод: TypeError: can only concatenate str (not "int") to str
print(fov)
Вывод: "100"
Ответы (2 шт):
ValueError: invalid literal for int() with base 10: '"' говорит о том, что ваше число в строке вместе с кавычками. То есть что то вроде этого: fov='"100"'. Можно попробовать что то наворотить, но не думаю, что вашей задачи не подойдет простое решение в виде fov[1 : (-1)]. По факту еденичным отступом от левого и правого края строки можно убрать кавычки. Последующих ошибок при конвертировании в целочисленное не должно возникнуть.
TypeError: can only concatenate str (not "int") to str. Итератор не может понять, что именно вы от него хотите. Или конвертируйте еденицу справа в строку и склеивайте строки, или конвертируйте строку слева в число, и складывайте числа. Как я понял, вам нужно последнее. Что-ж. Уже решено выше.
ValueError: invalid literal for int() with base 10: '"'
Свидетельствует о том, что вместо «100» парсер конфига отдаёт «"100"» (что и видно на принте).
Решить это можно написав:
fov = config["NAIM"]["fov"]
fov = fov.strip('"') # <=== // Убирает в начале и конце «"»
fov = int(fov)