Я использую 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'
с этим ?
Это может быть простой вопрос, если это так, я прошу прощения.
если вы контролируете способ создания файла .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}