当python对象包含在字符串中时,如何获取它的类型?
我有一个python对象当python对象包含在字符串中时,如何获取它的类型?,python,casting,type-conversion,Python,Casting,Type Conversion,我有一个python对象a=“123.50”,它是stringtype(a)=string 我想知道变量a是float对象 我试过ast.literal\u eval(value),但因为它接受所有其他东西 有什么类似于它的吗?(ast.literal\u eval)?您可以参考。在python中,通常只是尝试一下 >>> def floater(val): ... try: ... float(val) ... retu
a=“123.50”
,它是stringtype(a)=string
我想知道变量a
是float
对象
我试过ast.literal\u eval(value)
,但因为它接受所有其他东西
有什么类似于它的吗?(ast.literal\u eval)?您可以参考。在python中,通常只是尝试一下
>>> def floater(val):
... try:
... float(val)
... return True
... except ValueError:
... return False
...
>>> floater("123.45")
True
>>> floater("sinker")
False
或者,您可以让python尝试一下,并报告它发现了什么
>>> def what_is_it(val):
... try:
... return type(ast.literal_eval(val)).__name__
... except:
... return None
...
>>>
>>> what_is_it("113.44")
'float'
>>> what_is_it("1")
'int'
尝试解析浮点并捕获错误?。这是您的数据,您应该知道您想要得到什么。这取决于上下文。您希望
“1E1”
成为什么?一根绳子?花车?整数?您可以在这里求值,下面的答案中提供了一个示例。您希望在这里做什么,而safeast.literal\u eval
没有涵盖?是的,您是正确的,我们也可以使用ast模块。如果我们传递表达式,eval是危险的。您已将答案编辑成无法回答问题的内容-“是否有类似的内容(ast.literal\u eval)?”