Python 自动将字符串转换为适当的类型

Python 自动将字符串转换为适当的类型,python,Python,我试图找到一个函数,让python自动将字符串转换为“最简单”的类型。一些例子: conversion_function("54") -> returns an int 54 conversion_function("6.34") -> returns a float 6.34 conversion_function("False") -> returns a boolean False conversion_function("text") -> returns a s

我试图找到一个函数,让python自动将字符串转换为“最简单”的类型。一些例子:

conversion_function("54") -> returns an int 54
conversion_function("6.34") -> returns a float 6.34
conversion_function("False") -> returns a boolean False
conversion_function("text") -> returns a str "text"

R有一个名为的函数,可以实现这一点。在python中实现这一点的方法是什么?是否存在现有函数或是否需要创建自定义函数?

您可以使用
ast.literal\u eval

import ast
a='[1,2,3]'
b='False'
c='1.2'

print(ast.literal_eval(a),ast.literal_eval(b),ast.literal_eval(c))
注:

ast.literal\u eval
仅适用于有效的python数据类型

如果转换失败,您可以使用,并返回到不转换(返回原始字符串):

从ast导入文字\u评估
def类型:
尝试:
返回文字值
除:
返回s
示例:

>>最简单的_类型('54')
54
>>>最简单的_类型('6.34')
6.34
>>>最简单的_类型('False')
假的
>>>最简单的_类型(“文本”)
“文本”

您需要创建一个自定义的。
literal\u eval
不处理OP的第四个示例。不处理OP的第四个示例。@ScottHunter是,同意。我想不出比kaya3发布的有什么不同的解决方案。我应该删除我的答案吗?你可以解释你的笔记是什么意思。