python - Python3从CSV整数写入和读取到字符串
问题描述
我花了几个小时盯着这个,我无法弄清楚。我敢肯定这是基本的,但如果你能帮助我,那就太好了。
我有一个名为“export_data”的列表,其中包含其他列表和整数。例如。
print(type(export_data[0]))
print(type(export_data[5]))
#Output is: <class 'list'>
<class 'int'>
然后我将“export_data”写入 csv 文件。但是,当我随后读取文件并提取列值时,它会以字符串的形式返回。所以现在我有一个“[1,2,3]”,我不确定如何转换回列表。
with open('record ' + str(current) + '.csv', 'a', newline='') as f:
writer = csv.writer(f)
writer.writerow(export_data)
del writer
f.close()
with open('record Wednesday,Apr:29.csv', 'r') as rf:
reader = csv.reader(rf)
for i in reader:
(group_a.append(i[1]))
(x.append(i[0]))
(hr.append(i[5]))
print(type(export_data[0]))
print(type(export_data[5]))
#Output: <class 'str'>
<class 'str'>
我正在使用 csv 文件中的数据在 DASH 中使用 plotly 绘制数据。因此,我无法为我的 x 和 y 值输入列表。谢谢你的帮助。
解决方案
要将 "[1,2,3]" 转换回列表,请使用 Patrick Artner 提到的 eval() 或 ast.literal_eval (注意:eval 不是一个好的做法,也不安全,请参阅评论。我仍然快速使用它如果我确定输入数据是安全的,则本地脚本):
lst_str = eval("[1,2,3]")
print(lst_str)
print(type(lst_str))
===
import ast
lst_str = ast.literal_eval("[1,2,3]")
print(lst_str)
print(type(lst_str))
输出:
[1, 2, 3]
<class 'list'>
推荐阅读
- json - spring boot rest api以json形式返回对象列表
- java - JAVA如何根据另一个字符串检索一个字符串
- r - 如何将带有反斜杠和双引号的变量重新编码为 NA?
- linux - 运行 n=-1 个作业时 CPU 内核未得到充分利用
- c# - 动态加载局部视图并从控制器加载索引
- bash - 以编程方式更新文件的 Bash 脚本
- bash - 如何从 yum check-updates 获取可用更新的计数
- ios - 如何在 UITableViewCell 中制作动态 UIStackView?
- javascript - 如何解决谷歌应用程序的内容服务 - 脚本返回 java 脚本对象而不是 json 字符串?
- webpack - 在 shadow dom 中包含 webpack dist css 文件