我有.csv
个文件,我需要从中获取一些信息。如果我打开文件,我可以在其中看到两行,即" data"和"注意",我需要获得这两个变量的信息。
当我打开.csv
文件时,会显示以下行:
data =
[0,1,2,3,4,5,3,2,3,4,5,]
notes = [{"text": "Hello", "position":(2,3)}, {"text": "Bye", "position":(4,5)}]
要打开我使用的文件:
import csv
class A()
def __init__(self):
#Some stuff in here
def get_data(self):
file = open(self.file_name, "r")
data = csv.reader(file, delimiter = "\t)
rows = [row for row in data]
现在,要阅读数据中的信息,我只想写:
for line in row[1][0]:
try:
value_list = int(line)
print value_list
except ValueError:
pass
然后,我可以用这些值创建另一个列表并打印出来。现在,我需要读取" notes"中的数据,如您所见,它是一个以字典作为元素的列表。我需要做的是阅读"位置"每个字典中的元素并打印出来。
这是我的代码:
for notes in row[3][0]:
if notes["position"]:
print notes["position"]
但是,这给了我这个错误:
TypeError: string indices must be integers, not str
如何访问每个字典的这些元素然后打印出来?希望你能帮帮我。
这是我试图获取信息的.csv
文件。
答案 0 :(得分:1)
您可以将代码的最后一部分更改为:
for note in eval(rows[3][0].strip("notes = ")):
if note["position"]:
print note["position"]
如果您需要将该位置设为实际元组而不是字符串,则可以将最后一行更改为:
print tuple(note["position"])