Как прочитать текстовый файл для преобразования в словарь? - PullRequest
0 голосов
/ 27 января 2019

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

Как это сделать с помощью python?

Я пытался прочитатькак файл json или используйте метод разделения

{
    "id": "b1",
    "name": "Some Name" 
},
{
    "id": "b2",
    "name": "Another Name"
},
....

результат должен быть:

[{"id": "b1", "name": "Some Name"}, {"id": "b2", "name": "Another Name"}, ....]

Ответы [ 3 ]

0 голосов
/ 27 января 2019

Вы можете использовать модуль json в python

JSON (нотация объектов JavaScript), определенная в RFC 7159 (которая устарела в RFC 4627) и в ECMA-404, это легкий обмен даннымиформат, основанный на буквальном синтаксисе объектов JavaScript (хотя он не является строгим подмножеством JavaScript).

json предоставляет API, знакомый пользователям стандартных библиотечных модулей маршала и pickle.https://docs.python.org/2/library/json.html

В вашем случае, если ваш файл является допустимым файлом json, вы можете напрямую использовать метод json.loads ()

import json

with open('test.txt', 'r') as file:
    result = json.loads(file.read())
0 голосов
/ 27 января 2019

Добро пожаловать в переполнение стека ..!

Если вы используете файл JSON для хранения данных, я настоятельно рекомендую Python JSON Library . Как это использовать, спросите вы? Читать это

Если вы планируете использовать текстовый файл для хранения данных, я рекомендую вам хранить данные немного иначе, чем в формате JSON

b1,Some Name
b2,Another Name
.
.

Это облегчит чтение текстового файла . Просто используйте команду split(), чтобы отделить строки друг от друга, а затем используйте split(",") в каждой из строк, чтобы отделить идентификатор от Имени.

Вот код:

list = open("filename.txt").read().split("\n")
dictionaryList = []
for item in list:
    id, name = item.split(",")
    dictionaryList.append({id:name})

Надеюсь, это работает ..! SDA

0 голосов
/ 27 января 2019

Если ваш файл не слишком большой, вы можете сделать следующее:

import json

with open('filename.txt', 'r') as file:
    result = json.loads('[' + file.read() + ']')
...