コンテンツを信頼できると完全に確信している場合、たとえば、何らかの方法でコードをリストに忍び込ませることができるユーザーからのものではない場合、リストをevalにマップできます。これにより、数値などのネイティブ型がキャッチされます。ただし、これらの文字列がすべて何を意味するかを知る簡単な方法はありません。たとえば、「2010.01.01」を evel しようとすると、Python は数値を解析しようとしていると判断し、小数点以下が余分にあるために失敗します。
したがって、2 段階の戦略を試すことができます。最初に、eval を使用してリストを文字列と数値にキャストします。
def try_cast (input_string):
try:
val = eval(input_string)
val_type = type(val)
return val, val_type
except:
return input_string, type('')
cast_list = map (try_cast, original_list)
これにより、2 番目の項目が型で、最初の項目が変換された項目であるタプルのリストが得られます。日付などのより特殊なものについては、最初のパスの後に残った文字列に対して同じ戦略を使用する必要があります。期待する時刻形式を把握し、それぞれの解析式を生成する必要があります (python ドキュメントまたはhttp://www.tutorialspoint.com/python/time_strptime.htmのようなものを確認できます) 。すべてのオプションを試して、どのオプションが正しく変換されたかを確認します。1 つが機能した場合、値は日付です。そうでない場合は、単なる文字列です。