【发布时间】:2021-11-28 01:19:48
【问题描述】:
我正在使用 Flask-SQLAlchemy 开发一个应用程序,该应用程序需要以 .csv 格式导入和导出数据。我有导出功能,但我遇到了导入问题。
简而言之,我正在寻找一种将字符串“True”和“False”作为布尔值导入的通用方法,但任何其他字符串值作为其本身。原因是csv.DictWriter 将布尔值呈现为其字符串等价物,我需要将生成的文件导入回数据库中。
我试过ast.literal_eval(),但如果我给它“True”或“False”以外的任何值,它就会抛出一个ValueError。我可以测试列名,但当然,一旦我更改架构,它就会中断。我想用成语
reader = csv.DictReader(fh)
...
for row in reader:
...
contact = Contact.query.get(row['id'])
for key, value in row.items():
setattr(contact, key, value)
谁能提出一种方法来实现我想要实现的目标?
【问题讨论】:
-
如果数据类型很重要,则不应使用 CSV 格式。使用 JSON 或 Pickle。
-
我需要导出到电子表格,然后导入修改后的电子表格。这就是我使用 .csv 的原因。
-
这听起来像是X Y problem。
-
@KlausD。你会建议我如何解决这个问题?
标签: python string csv type-conversion boolean