python - 将字符串转换为整数。检查字典中的每个字段,如果它显示“Int”,则转换 csv 文件中这些特定字段的值
问题描述
我有一个带有标题的 csv 文件,以及带有值的两行,如下所示: Csv File
我在 python 中有这样的字典: Python 字典
csv 文件中的所有字段都是字符串类型。我希望其中一些字段成为整数。所以我想要做的是,将 csv 中的字段与字典进行比较,然后检查我字典中的每个字段,以及它显示“Int”的位置,我想将这些字段从 csv 转换为 Int。无法使用此当前代码执行此操作:
try:
with open('Book1.csv', newline='') as csvFile:
reader = csv.reader(csvFile)
filedictreader = csv.DictReader(csvFile, delimiter=',')
print(type(filedictreader))
for element in filedictreader:
for key in element:
print(key)
except Exception as e:
print("Error: " + str(e))
输出:
<class 'csv.DictReader'>
Site_ID
Site_Name
Site_Type
Latitude
Longitude
Address
Supplier
Access_Details
Access_Time
Telephone_Number
County
Battery_Hours
Cir_ID
Cir_Type
Cir_Capacity
Cir_Owner
Site_A
Site_B
Cust_Name
Redundancy
Site_A_Node
SiteA_Int
SA_Dish_Height
SA_Dish_Azm
SiteA_size
Site_B_Node
SiteB_Int
SiteB_size
SB_Dish_Height
SB_Dish_Azm
Node_ID
Node_Name
Node_IP
Node_Type
Node_Vendor
Node_Model
Location
Site_ID
Site_Name
Site_Type
Latitude
Longitude
Address
Supplier
Access_Details
Access_Time
Telephone_Number
County
Battery_Hours
Cir_ID
Cir_Type
Cir_Capacity
Cir_Owner
Site_A
Site_B
Cust_Name
Redundancy
Site_A_Node
SiteA_Int
SA_Dish_Height
SA_Dish_Azm
SiteA_size
Site_B_Node
SiteB_Int
SiteB_size
SB_Dish_Height
SB_Dish_Azm
Node_ID
Node_Name
Node_IP
Node_Type
Node_Vendor
Node_Model
Location
解决方案
请参阅我对您的问题的评论。在这里,我将展示如何测试每种列类型并转换值(如果它应该是整数)。但正如我评论的那样,我不知道转换后你想用它做什么。而且由于您没有dict1
以任何可以复制和粘贴的形式提供字典(而且我不是要自己键入完整的声明,因此我只定义了一个条目用于演示目的)。
我删除了reader
未使用的变量,并将一些变量重命名为对我来说更合乎逻辑的名称,并遵循PEP 8 -- Python 代码样式指南来命名变量。
import csv
dict1 = {
"Site_Name": "String"
}
try:
with open('Book1.csv', newline='') as csv_file:
dictreader = csv.DictReader(csv_file, delimiter=',')
for row in dictreader:
for field_name in row:
if dict1.get(field_name, 'String') == 'Int':
# conversion (can throw an exception):
row[field_name] = int(row[field_name])
except Exception as e:
print("Error:", e)
推荐阅读
- amazon-s3 - 通过 API 网关上传文件的架构
- database - 3 个单独的表格或 1 个带有额外列的表格?
- database - OrientDB 中缺少记录 OUser
- apache - 即使在配置目录、文件 chmod 和 selinux 设置后也禁止 Apache 403
- python - try: VAR = ... except: VAR = ... finally: VAR - 局部变量 'VAR' 可能在赋值之前被引用
- c - 为什么暂定定义不会由于多个定义而导致错误?
- python - powerBI 中的 Pandas (Python)
- reactjs - 如何阻止我的材质 UI 卡离开屏幕创建水平滚动情况?
- javascript - Chrome 扩展程序未发送请求
- angular - 角度组件问题