Circuitpython берет последние переменные из текстового файла

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

Я пишу все, что делает мой микроконтроллер. текстовый файл вроде этого:

[{'name': 'exampleA', 
'time': '2022-03-15 14:11:55.145631',
 'id': '5456431', 
'howmany': 2, 
'character':None},
{'name': 'exampleA', 
'time': '2022-03-15 18:12:52.12541',
 'id': '5456431', 
'howmany': 5, 
'character':None}]

exampleA может повторяться в этом текстовом файле, мне всегда нужно проверять значения последнего примераA, потому что мне нужно что-то делать в определенное время. Например, если я что-то сделал с exampleA в 14:00, я не могу ничего делать до 18:00. Итак, мне нужно узнать время последнего примера A.

Мне нужно читать и записывать этот файл, когда интернета нет. Если у меня есть интернет, я могу брать данные из API, но когда Интернета нет, микроконтроллер должен сделать это сам, а когда Интернет подключен, ему нужно опубликовать этот текстовый файл в API.

string = exampleA  # it will be taken from user.
file = open("example.txt")
for line in reversed(file.readlines()):
    if string in line:
        print(string)

Я думаю, что обратный способ - лучший способ получить последнее значение, но как я могу взять эту строку 'time' с этим ?

Это может быть простой вопрос, если это так, я прошу прощения.

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
29
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

если вы контролируете способ создания файла .txt, я бы изменил его форматирование на JSON. С помощью JSON вы можете легко загрузить свой файл .txt в список dict, а затем вы можете использовать стандартный список / dict voodoo, чтобы легко делать то, что вы хотите, без какой-либо специальной обработки данных.

import json

with open("input.json") as infile:
    data = json.load(infile)


for item in data:
    print(item["time"])


print(data[-1]) # last element

ввод.json

[
    {
        "name": "exampleA",
        "time": "2022-03-15 14:11:55.145631",
        "id": "5456431",
        "howmany": 2,
        "character": null
    },
    {
        "name": "exampleA",
        "time": "2022-03-15 18:12:52.12541",
        "id": "5456431",
        "howmany": 5,
        "character": null
    }
]

выход

2022-03-15 14:11:55.145631
2022-03-15 18:12:52.12541
{'name': 'exampleA', 'time': '2022-03-15 18:12:52.12541', 'id': '5456431', 'howmany': 5, 'character': None}

Другие вопросы по теме