确定在 python 中表示为字符串的值的类型

2023-11-27

当我使用 python 中的 csv 解析器读取逗号分隔的文件或字符串时,所有项目都表示为字符串。请参见下面的示例。

import csv
a = "1,2,3,4,5"
r = csv.reader([a])
for row in r:
    d = row

d [‘1’、‘2’、‘3’、‘4’、‘5’] 类型(d[0])


你可以这样做:

from datetime import datetime

tests = [
    # (Type, Test)
    (int, int),
    (float, float),
    (datetime, lambda value: datetime.strptime(value, "%Y/%m/%d"))
]

def getType(value):
     for typ, test in tests:
         try:
             test(value)
             return typ
         except ValueError:
             continue
     # No match
     return str

>>> getType('2010/1/12')
<type 'datetime.datetime'>
>>> getType('2010.2')
<type 'float'>
>>> getType('2010')
<type 'int'>
>>> getType('2013test')
<type 'str'>

关键在于测试顺序,例如 int 测试应该在 float 测试之前。对于日期,您可以为您想要支持的格式添加更多测试,但显然您无法涵盖所有​​可能的情况。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

确定在 python 中表示为字符串的值的类型 的相关文章

随机推荐

  • 禁用焦点上的橙色轮廓突出显示

    我正在使用 jQuery jqTouch 和 Phonegap 编写一个应用程序 并且遇到了一个持续存在的问题 当用户使用软键盘上的 Go 按钮提交表单时 就会出现这个问题 尽管通过使用很容易将光标移动到适当的表单输入元素 input el
  • 即使操作系统杀死应用程序,如何在android中保存/恢复全局变量

    在android中 Google建议我们将全局变量保存在Application中 但有一个问题 如果android操作系统因为内存不足而杀死应用程序 应用程序将重新创建 并且我保存的全局变量将丢失 我不知道什么时候保存 恢复这些变量 应用程
  • 如何计算asp.net中数据表列的总和?

    我有一个有 5 列的 DataTable ID Name 帐号 Branch Amount 数据表包含 5 行 如何将标签控件中金额列的总和显示为 总金额 要计算 DataTable 中列的总和 请使用数据表 计算 method 链接的 M
  • 如何在 appsettings.json 中加载多态对象

    有什么方法可以从中读取多态对象appsettings json以强类型的方式 下面是我需要的一个非常简单的示例 我有多个应用程序组件 名为Features这里 这些组件是由工厂在运行时创建的 我的设计意图是每个组件都由其单独的强类型选项配置
  • sqlite3 中的批量插入速度更快?

    我有一个大约 30000 行数据的文件 我想将其加载到 sqlite3 数据库中 有没有比为每行数据生成插入语句更快的方法 数据以空格分隔并直接映射到 sqlite3 表 是否有任何类型的批量插入方法可以将卷数据添加到数据库中 如果不是内置
  • 如何在远程端存储库上“git Blame”?

    在我的服务器上 我托管我的个人 git 远程项目 使用 gitosis 并且我构建了一个 Web 界面来浏览存储库 类似于 Github 在远程端 您不允许做很多事情 因为缺少工作树 这是正确的 顺便说一句 对于存储库资源管理器 只需很少的
  • 如何更改 WAMPSERVER 中的 MySQL 排序规则

    我如何将 WAMPSERVER 中的 MySQL 排序规则从 latin1 swedish ci 更改为 UTF 8 因为我认为我的 HTML 特殊字符变得一团糟 放入你的C wamp bin mysql mysql5 5 24 my in
  • ListView setOnItemClickListener 在自定义列表视图中不起作用

    我有一个列表视图 每行有两个文本视图和一个编辑文本 列表视图 setOnItemClickListener 不起作用 这是我的 Java 代码 public class CreateChallan extends Activity List
  • ASP.NET:如何从 web.config ConnectionString 创建连接?

    如何构建基于 DbConnection提供商名称 Sample 提供商名称s 系统 数据 SqlClient 系统 数据 OleDb 系统数据 ODBC FirebirdSql Data FirebirdClient 我的 IIS 服务器的
  • (如何)我可以从套接字文件描述符确定套接字系列

    我正在编写一个 API 其中包括 IPC 函数 这些函数将数据发送到另一个进程 该进程可能位于本地或另一台主机上 我真的希望发送功能能够像下面这样简单 int mySendFunc myDataThing t thing int sd 调用
  • Visual Studio 2017 Nuget pack 排除项目引用作为另一个 nuget 引用,而是添加程序集

    当我们在 Visual Studio 2017 中创建 nuget 包时 它默认将项目引用添加为另一个 nuget 引用 我们如何在创建包时禁用它 而是 选择不同的包名称 创建包时包含项目的 dll The PackageReference
  • 为什么结构体中的迭代器可以修改它?

    我发现值类型中的迭代器方法是允许修改的this 但是 由于 CLR 的限制 调用方法看不到这些修改 this按值传递 因此 迭代器和非迭代器中的相同代码会产生不同的结果 static void Main Mutable m1 new Mut
  • 通用可变参数的警告

    我声明了以下方法 private void mockInvokeDBHandler Map
  • 检测耳机何时插入

    有什么方法可以以编程方式确定耳机何时插入计算机 本质上 我只是想编写一个简单的工具 除非插入耳机 否则它会将我的声音静音 这可能吗 在 Windows Vista 及更高版本中 您可以使用设备到达和删除通知并检索端点外形规格来确定音频解决方
  • 在 MYSQL 中使用 SELECT DISTINCT

    做了很多搜索 但还没有真正找到我的 MYSQL 问题的答案 SELECT DISTINCT name type state country FROM table 结果 1 795 条记录 SELECT DISTINCT name FROM
  • 一些 startBrowsingForNearbyPlayersWithReachableHandler 问题

    我正在尝试使用 GameKit 进行本地匹配 GKMatchmaker sharedMatchmaker startBrowsingForNearbyPlayersWithReachableHandler 本质上 我正在尝试实现无界面的本地
  • 如何比较日期时间值,考虑到时区?

    我有两个DateTime变量 每个都有一个存储在变量中的时区 这样当我ToString格式包括 zzz 我得到一个字符串 包括 01 00 在设计时 我不知道时区是什么 我希望变量具有彼此不同的时区 我想比较两者DateTime值 以便我知
  • 如何在 Rust 中保存 PNG 图像?

    给定一个向量u8字节 每像素 4 字节 RGBA 如何将其保存到 PNG 文件 你可以使用 Piston 存储库中的镜像箱将原始缓冲区保存到磁盘 页面底部的示例向您展示了如何执行此操作 extern crate image fn main
  • 如何从xml文件中删除根元素

    亲爱的朋友们下午好 我的问题可能是这是一个非常基本的问题 即我们如何使用 xslt 从 xml 文件中删除根元素 下面给出了 Xml 文件示例
  • 确定在 python 中表示为字符串的值的类型

    当我使用 python 中的 csv 解析器读取逗号分隔的文件或字符串时 所有项目都表示为字符串 请参见下面的示例 import csv a 1 2 3 4 5 r csv reader a for row in r d row d 1 2