Je dois appeler une API qui me renvoie parfois des valeurs numériques au format de chaîne, Comment puis-je faire fonctionner la fonction à la valeur correcte? Cela signifie: p> C'est mon essai. La chose est que cela me convertit aussi tous les flotteurs en entiers et je ne veux pas cela. Est-ce que quelqu'un peut me donner la main? P> merci d'avance p> p> p> "288" code> au lieu de 288 code> ou "0,1523" Code> au lieu de 0.1513 code>. Quelques autres fois, je reçois la valeur numérique appropriée, 39 code>.
"288" code> le convertir en entier: 288 code>. LI>
"0.323" code> Convertissez-le en un flotteur: 0.323 code>. LI>
288 code> laissez-le comme il est (c'est déjà un entier déjà). LI>
0.323 code> partir tel qu'il est (c'est déjà un flotteur). Li>
ul>
3 Réponses :
Utilisez Suivant:
def convert(self, value)
a=value
b=float(a)
if(b==int(b)):b=int(b)
print(b)
def parse_value(value):
try:
print(type(value))
if type(value) is float:
print(value)
elif type(value) is int:
print(value)
elif type(value) is str:
value = float(value)
print(value)
except ValueError:
try:
print(value)
except ValueError:
pass
Cela fonctionnerait-il pour vous?
def parse_value(value):
f = float(value)
r = f if f != int(f) else int(f)
return r
Pourquoi faites-vous une distinction entre flotteur et int? Pour la plupart des usecases
float (valeur) code> suffit.