Python读取CSV取字段值输出带大括号 如何获取纯字符串
问题原因
你输出异常的核心是误用了Python的集合字面量语法:用{}包裹单个变量row[1]时,Python会自动创建仅包含该元素的集合对象,打印时就会输出{'Garfield'}这类集合格式的结果,而非你需要的纯字符串。
解决方案
csv.reader返回的每一行row本身就是字符串组成的列表,直接取下标对应的元素即可得到纯字符串,不需要额外包裹符号:
# 直接取对应下标的元素即可,本身就是字符串类型 surname = row[1] # 打印验证 print(surname) # 输出 Garfield # 传入构造函数直接传变量即可 your_instance = 你的构造函数(surname)
如果需要拼接firstname和surname使用,可采用以下两种写法:
# 写法1:f-string自定义拼接格式 full_name = f"{row[0]} {row[1]}" # 写法2:沿用你已经验证过的join写法 full_name = " ".join(row)
错误写法说明
你原本不符合预期的写法本质是在操作集合而非字符串:
{row[1]}:等价于set([row[1]]),是集合对象,打印时会输出集合的标准格式str({row[1]}):将整个集合对象转为字符串,自然保留了集合的大括号、引号等格式符号
内容的提问来源于stack exchange,提问作者r2ls
相关产品推荐
相关产品推荐

