2016-03-12 2 views
0

Im пытается импортировать файл, который содержит такие строки:Добавить строки из файла в качестве словаря в список Python

{ "dictitem" : 1, "anotherdictitem" : 2 } 

Я хочу, чтобы импортировать их в список словарей, как это:

[{ "dictitem" : "henry", "anotherdictitem" : 2 },{ "dictitem" : "peter", "anotherdictitem" : 4 },{ "dictitem" : "anna", "anotherdictitem" : 6 }] 

Я пробовал: tweetlist = open("sample.out").readlines()

Но тогда они добавляются в виде строки. У кого-нибудь есть идея? Спасибо!

+0

Вам необходимо декодировать каждую строку, используя 'json' –

+0

. Пожалуйста, предоставьте более полный пример исходного файла. Я серьезно сомневаюсь, что все строки в файле выглядят точно так же, как в вашем вопросе. – ekhumoro

ответ

0

Вам необходимо декодировать каждую строку, используя json. Пример:

import json 

list = [] 
with open("data.txt", 'r') as file: 
    for line in file: 
     dict = json.loads(line) 
     list.append(dict) 

print(list) 
0

Вы можете использовать literal_eval функцию Аст библиотеки на каждой строке, используя список понимание, как это:

import ast 
tweetlist = [ast.literal_eval(x) for x in open("sample.out").readlines()] 

ast.literal_eval является более безопасной версией функции eval, которая не выполняет функции ,

+0

Я получаю эту ошибку: Файл «/usr/lib/python3.4/ast.py», строка 83, в _convert raise ValueError («неверный узел или строка:» + реестр (узел)) ValueError: неверный узел или строка: <_ast.Name объект в 0x7f9c7cc4ba58> – Leipelopo

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