2015-08-16 2 views
0

У меня есть файл, который имеет следующий формат:Чтение из файла в структуру данных Python

[ 
["unique_id1", {"cc":15, "dd":30}], ["unique_id2", {"cc": 184,"dd":10}], ... 
] 

Я хочу сразу прочитать файл и помещает данные в структуру данных Python. На данный момент я обрабатываю регулярные выражения. Есть ли команда, которую мне не хватает, чтобы прочитать ее напрямую?

+1

Это похоже на json –

ответ

3

Этот формат файла, вероятно, JSON из того, что вы нам показали.

Вы можете разобрать его, выполнив

import json 
out = json.load(file_object) 

Либо, что или его буквальным

out = eval(file_object.read()) 

ИЛИ (Preferred)

import ast 
out = ast.literal_eval(file_object.read()) 
+0

Формат json в порядке, если бы вы могли написать, как я могу эффективно пройти цикл, я буду этому благодарен. – berkay

+0

Вам не нужно использовать цикл for для JSON, вы просто прочитали его, и он просто работает. – muddyfish

+0

Я понимаю, но мне нужно получить доступ к некоторым уникальным элементам и обработать их. – berkay

0

Вы должны использовать ast.literal_eval(), получается строки, которые содержат объекты Python, в объекты Python:

>>> import ast 
>>> l = ast.literal_eval('[1, 2, 3]') 
>>> type(l) 
<class 'list'> 
>>> l 
[1, 2, 3] 

Таким образом, вы бы считывать данные из файла и включить его в список:

with open('file.txt') as infile: 
    data = ast.literal_eval(infile.read()) 
+0

Я думаю, проблема в том, что после чтения файла, обработки их. Спасибо, это помогло. – berkay

Смежные вопросы