Python:将字符串对象从文件解析为python对象

时间:2016-06-09 21:02:36

标签: python csv dictionary

我有.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文件。

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以将代码的最后一部分更改为:

for note in eval(rows[3][0].strip("notes = ")):
    if note["position"]:
        print note["position"]

如果您需要将该位置设为实际元组而不是字符串,则可以将最后一行更改为:

print tuple(note["position"])