Python:将字符串对象从文件解析为python对象
我有.csv
文件,我需要从中获取一些信息。如果我打开这个文件,我可以看到两行代码,里面写着“data”和“notes”,我需要获得这两个变量的信息。Python:将字符串对象从文件解析为python对象
当我打开.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
然后,我可以用这些值创建另一个列表并打印它。现在,我需要从“笔记”中读取数据,就像你看到的那样,它是一个以字典作为元素的列表。我需要做的是读取每个字典中的“位置”元素并打印出来。
这是我的代码:
for notes in row[3][0]:
if notes["position"]:
print notes["position"]
但是,这,使我这个错误: TypeError: string indices must be integers, not str
如何访问每个字典的这些元素,然后打印呢?希望您能够帮助我。
这是.csv
文件,我从中试图获取信息。
你可以改变你的代码的最后一部分:
for note in eval(rows[3][0].strip("notes = ")):
if note["position"]:
print note["position"]
如果你需要的位置是一个实际的元组,而不是一个字符串,您可以更改最后一行:
print tuple(note["position"])
谢谢你的回答。是不是“行”列表?如果是,那么'strip'会给我一个'语法错误'。不是吗? –
@PabloFlores - 它是,但行[3] [0]是一个字符串,这就是你正在运行的条。测试代码,它的工作原理。 – Natsukane
谢谢。你帮了我很多。 –
这似乎不是实际上是一个CSV文件 – Amndeep7
这个问题是笔记是一个字符串不是一个字典 – Keatinge
嗯,这是。只是在开始时它只有一列。在这些行之后,是一个常见的'.csv'文件。 –