У меня есть файл .csv
, и мне нужно получить некоторую информацию от него. Если я открою файл, я могу увидеть две строки в нем, в которых говорится «данные» и «заметки», и мне нужно получить информацию, которую имеют эти две переменные.Python: Parse строковые объекты в объекты 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
И с этим я могу создать другой список с этими значениями и распечатать его. Теперь мне нужно прочитать данные из «заметок», как вы можете видеть, это список со словарями в качестве элементов. Что мне нужно сделать, так это прочитать элемент «position» внутри каждого словаря и распечатать его.
Это код, который у меня есть:
for notes in row[3][0]:
if notes["position"]:
print notes["position"]
Но это дает мне эту ошибку: TypeError: string indices must be integers, not str
Как я могу получить доступ к этим элементам каждого словаря, а затем распечатать его? Надеюсь, ты поможешь мне.
Это файл .csv
, откуда я пытаюсь получить информацию.
Это не кажется, на самом деле быть CSV файл – Amndeep7
Эта проблема заметки является строкой не ДИКТ – Keatinge
Ну, это. Это только то, что в начале он имеет только один столбец. После этих строк является обычным файлом '.csv'. –