Python:将字符串对象从fi解析为Python对象

2024-05-08 11:57:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个.csv文件,我需要从中获取一些信息。如果我打开这个文件,我可以看到其中的两行,分别是“data”和“notes”,我需要得到这两个变量的信息。你知道吗

当我打开.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”中读取数据,如您所见,这是一个以字典为元素的列表。我需要做的是,读取每个字典中的“position”元素并打印出来。你知道吗

这是我的代码:

   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


Tags: 文件csvtextinself信息元素for
1条回答
网友
1楼 · 发布于 2024-05-08 11:57:58

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

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

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

print tuple(note["position"])

相关问题 更多 >