vip*_*war 4 python csv string floating-point integer
我有一些值是 csv 文件,在 csv 文件中,一些值是数字,一些是字符串数字。.csv 文件示例:
1,"1151226468812.22",100,1,467,999.00,999.95,15,1,999.00,999.95,998.50,999.95,15,999.01,1396,34,06092016091501.444,1394627.25
2,"1151226468812.11",100,1,467,999.00,1000.00,1605,3,999.00,1000.00,998.50,1000.00,5,999.03,1426,37,06092016091502.111,1424626.50
Run Code Online (Sandbox Code Playgroud)
所以我想将字符串转换为浮点数。所以这是我的代码:
datareader = csv.reader(datafile, delimiter=",", quoting= csv.QUOTE_NONE)
names = []
names.append("local_timestamp")
names.append("nse_timestamp")
for row in datareader:
data = dict()
data.update(local_timestamp = row[0])
data.update(nse_timestamp = float(row[1]))
Run Code Online (Sandbox Code Playgroud)
但它返回值错误。
ValueError: could not convert string to float: '"1151226468812.22"'
Run Code Online (Sandbox Code Playgroud)
小智 6
问题是您的字符串不仅是'1151226468812.22',而且是'"1151226468812.22"'。它还包含语音标记 ( ")。这意味着在将其转换为浮点数之前,您需要删除前导和尾随语音标记。幸运的是,Python 有一个非常方便的字符串方法.strip()可以为您执行此操作。
string.strip(s)将返回一个's'去除了前导和结束字符的字符串
例如:
myString = "#hello#".strip("#")
Run Code Online (Sandbox Code Playgroud)
在这段代码中,myString将只是'hello'
在这种情况下,您希望去除row[1]前导和尾随"字符。你可以很容易地做到这一点:
row[1].strip("\"")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
59917 次 |
| 最近记录: |