Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Кавычки в словаре Python

многабукаф Знаток (390), открыт 3 недели назад
Привет!!!

a=1
while a<=kolvo_strok:
......
#Получаем результат
p=str(cursor.fetchone()[0])
print(p)


data={'orders':[p]}
print(data)

Значение переменной p прилетает с кавычками. Как исправить??? p бывает вида 123, бывает 123-4, бывает 123а-56

ПАМАГИИИИТИИИИ!!!!!!
3 ответа
Максим Амылов Мыслитель (9480) 3 недели назад
попробуй иные параметры
многабукафЗнаток (390) 3 недели назад
да ты че!!! серьезно???
Анатолий Зяблин Просветленный (28375) 3 недели назад
Так попробуй
 a = 1 
while a <= kolvo_strok:
# Получаем результат
p = str(cursor.fetchone()[0])
print(p)

# Функция для обработки значения p
def process_p(value):
value = value.strip()
if value.isdigit():
return int(value)
elif '-' in value:
parts = value.split('-')
if len(parts) == 2 and all(part.strip().isdigit() for part in parts):
return f"{int(parts[0])}-{int(parts[1])}"
return value

processed_p = process_p(p)
data = {'orders': [processed_p]}
print(data)

a += 1
многабукафЗнаток (390) 3 недели назад
предлагаешь почикать до тире и после? там может быть и три блока.
*~ Zerx ~* Гуру (3105) 3 недели назад
С какими именно кавычками? Показал бы как вывод выглядит. Скорее всего, раз уж ты из sql что-то цепляешь, то в самом запросе нужно первый элемент вытащить (даже если он там один). То есть что-то вроде result[0]
многабукафЗнаток (390) 3 недели назад
да выдергивается нормально... потом начинается...
многабукафЗнаток (390) 3 недели назад
вывод
'123' или '123-456'
нужен
123 или 123-456
многабукафЗнаток (390) 3 недели назад
реплейс не помогает
*~ Zerx ~*Гуру (3105) 3 недели назад
Можно так p[1:-1]. Но это костыли. Смотри где ошибка, в самой бд без кавычек?
многабукафЗнаток (390) 3 недели назад
там везде str. Написал что если в р.isnumeric()==True:
дальше гнать int(p)
иначе str(p).
Хрен знат почему но работает))
*~ Zerx ~* Гуру (3105) многабукаф, потому что 123 может быть int и является числом (isnumeric), а 123-231 уже нет
Похожие вопросы