Найти - Пользователи
Полная версия: Python3 SQlite 3 string,list json
Начало » Python для новичков » Python3 SQlite 3 string,list json
1
denis-evs
Здравствуйте у меня есть данные,которые представлены list
[{'device_id': ‘00000000000001’, ‘channels’: , ‘timestamp’: 1490859888}, {'device_id': ‘00000000000005’, ‘channels’: , ‘timestamp’: 1490859909}, {'device_id': ‘00000000000010’, ‘channels’: , ‘timestamp’: 1490859946}]
Эти данные отправляяются по мобильному интернету. в случае плохой связи они могут не отправиться, поэтому я их сохраняю в базу в виде одной строки:
  
string_data = str(all_data)
db = sqlite3.connect('/home/fa/mainprog/devices.db')
cursor = db.cursor()
                                        # # Create table as per requirement
sql = "UPDATE badData SET datanotsended=?"
cursor.execute(sql, [string_data])
db.commit()
db.close()
перед новой отправкой я должен прочитать эти данные. Читаю я успешно, но вот читаются они как стринг,что в принципе логично, как из этого стринга мне получить мой изначальный list, это необходимо,чтобы сделать append к новым данным, затем обернуть это в json и отправить
Сейчас у меня выходит “битый” json ибо вся старая строка оборачивается вот в такое дело:
[{“timestamp”: 1490859888, “channels”: , “device_id”: “00000000000001”}, {“timestamp”: 1490859909, “channels”: , “device_id”: “00000000000005”}, {“timestamp”: 1490859946, “channels”: , “device_id”: “00000000000010”},

["[{'timestamp': 1490859888, ‘channels’: , ‘device_id’: ‘00000000000001’}, {'timestamp': 1490859909, ‘channels’: , ‘device_id’: ‘00000000000005’}, {'timestamp': 1490859946, ‘channels’: , ‘device_id’: ‘00000000000010’}]"]]
JOHN_16
denis-evs
ну вот у Вас в голове ничего не щелкнуло что что то пошло явно не так? Берете список, сериализуете его через json.dumps(all_data), отправляете в базу получившуюся строку. Когда надо читаете из базы эту строку, делаете десереализацию json.loads(my_string) и получаете вновь список. Ну а дальше делайте что нужно с ним.
А конвертировать список в строку, что бы потом обратно конвертировать через eval() - ну это совсем не правильно.
denis-evs
Спасибо мил человек. Выручили
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB