Работа со словарями в текстовом файле
У меня текстовый файл, состоящий из множества словарей. Они не разделены запятыми. Выглядит примерно так:
{"op":"mcm","clk":"890423429","pt":1578998015095,"mc":[{"id":"1.167393008","marketDefinition":{"bspMarket":false}}]}
{"op":"mcm","clk":"890422329","pt":1578998015034,"mc":[{"id":"1.167393008","marketDefinition":{"bspMarket":false}}]}
{"op":"mcm","clk":"890461129","pt":1578998015021,"mc":[{"id":"1.167393008","marketDefinition":{"bspMarket":true}}]}
Вопрос в том, как с ним работать. Я хочу работать со словарями, искать там нужную мне информацию, делать на ее основе расчеты. На данный момент все содержимое файла - строка.
Ответы (1 шт):
Автор решения: Евгений
→ Ссылка
Вы можете работать с каждой строкой, как с JSON-объектом:
text.txt
{"op":"mcm","clk":"890423429","pt":1578998015095,"mc":[{"id":"1.167393008","marketDefinition":{"bspMarket":false}}]}
{"op":"mcm","clk":"890422329","pt":1578998015034,"mc":[{"id":"1.167393008","marketDefinition":{"bspMarket":false}}]}
{"op":"mcm","clk":"890461129","pt":1578998015021,"mc":[{"id":"1.167393008","marketDefinition":{"bspMarket":true}}]}
main.py
import json
# читаем словари из text.txt
a = list(map(lambda line: json.loads(line), open('text.txt')))
"""
a - список, содержащий в себе 3 словаря из файла
Здесь находится работа со словарями
Чтобы убедиться, что здесь находятся именно словари, а не строки, можно добавить:
for elem in a:
print(type(elem))
"""
# записываем отредактированные словари в text2.txt
f = open('text2.txt', 'w')
f.write('\n'.join(map(lambda elem: json.dumps(elem), a)))
Работает с любыми словарями в файле, если каждый записан с новой строчки (содержимое словарей не имеет значения)