如何将列表数据插入到 SQLite 中?

How to insert list data into SQLite?

我在文本文件中有数据,我从中提取了特定的键和值。

Python 文件

data = []
with open('datatest.txt', 'r', encoding='utf-8') as f:
    for count, line in enumerate(f, start=1):
        if count % 2 == 0:
            data.append((json.loads(json.loads(line)['message'])['first_name'],
                         json.loads(json.loads(line)['message'])['last_name'],
                         json.loads(json.loads(line)['message'])['id'],
                         json.loads(json.loads(line)['message'])['phone']))

Datatest.txt 文件的内容

{"index": {"_type": "_doc", "_id": "wJgr4m8BAObvGO9GQ4_E"}}
{"message":"{\"_\":\"user\",\"pFlags\":{\"contact\":true},\"flags\":2175,\"id\":379951860,\"access_hash\":\"6967195540985199805\",\"first_name\":\"پژوا\",\"last_name\":\"روزبهی\",\"username\":\"mramtd2\",\"phone\":\"989157145632\",\"photo\":{\"_\":\"userProfilePhoto\",\"photo_id\":\"1631880813210609625\",\"photo_small\":{\"_\":\"fileLocation\",\"dc_id\":4,\"volume_id\":\"448413446\",\"local_id\":476387,\"secret\":\"655623158723369503\"},\"photo_big\":{\"_\":\"fileLocation\",\"dc_id\":4,\"volume_id\":\"448413446\",\"local_id\":476389,\"secret\":\"13993366131879811943\"}},\"status\":{\"_\":\"userStatusOffline\",\"was_online\":1558046876}}","phone":"989157145632","@version":"1","typ":"telegram_contacts","access_hash":"6967195540985199805","id":379951860,"@timestamp":"2020-01-26T13:50:12.793Z","path":"/home/user/mirror_01/users_5d65f610ec18aa615a5f580c.log","username":"mramtd2","type":"redis","flags":2175,"host":"ubuntu","imported_from":"telegram_contacts"}
{"index": {"_type": "_doc", "_id": "wZgr4m8BAObvGO9GQ4_E"}}
{"message":"{\"_\":\"user\",\"pFlags\":{\"contact\":true},\"flags\":2167,\"id\":104168655,\"access_hash\":\"4049515388751185251\",\"first_name\":\"فرنود\",\"last_name\":\"پولادی\",\"phone\":\"989122802780\",\"photo\":{\"_\":\"userProfilePhoto\",\"photo_id\":\"447400966949546277\",\"photo_small\":{\"_\":\"fileLocation\",\"dc_id\":1,\"volume_id\":\"806513597\",\"local_id\":18178,\"secret\":\"17864732085601779143\"},\"photo_big\":{\"_\":\"fileLocation\",\"dc_id\":1,\"volume_id\":\"806513597\",\"local_id\":18180,\"secret\":\"15235849821352229632\"}},\"status\":{\"_\":\"userStatusOffline\",\"was_online\":1564097832}}","phone":"989122802780","@version":"1","typ":"telegram_contacts","access_hash":"4049515388751185251","id":104168655,"@timestamp":"2020-01-26T13:50:12.793Z","path":"/home/user/mirror2/users_5d38e984ce828ee03a4789ee.log","type":"redis","flags":2167,"host":"ubuntu","imported_from":"telegram_contacts"}
{"index": {"_type": "_doc", "_id": "wpgr4m8BAObvGO9GQ4_E"}}
{"message":"{\"_\":\"user\",\"pFlags\":{\"contact\":true},\"flags\":2167,\"id\":370718330,\"access_hash\":\"10906080075127684980\",\"first_name\":\"گلنسا\",\"last_name\":\"پریی\",\"phone\":\"989139505268\",\"photo\":{\"_\":\"userProfilePhoto\",\"photo_id\":\"1592223103833974699\",\"photo_small\":{\"_\":\"fileLocation\",\"dc_id\":4,\"volume_id\":\"434224163\",\"local_id\":12578,\"secret\":\"12430588603747451378\"},\"photo_big\":{\"_\":\"fileLocation\",\"dc_id\":4,\"volume_id\":\"434224163\",\"local_id\":12580,\"secret\":\"5910708978456395305\"}},\"status\":{\"_\":\"userStatusOffline\",\"was_online\":1561114212}}","phone":"989139505268","@version":"1","typ":"telegram_contacts","access_hash":"10906080075127684980","id":370718330,"@timestamp":"2020-01-26T13:50:12.793Z","path":"/home/user/mirror_01/users_5d65f610ec18aa615a5f580c.log","type":"redis","flags":2167,"host":"ubuntu","imported_from":"telegram_contacts"}
{"index": {"_type": "_doc", "_id": "w5gr4m8BAObvGO9GQ4_E"}}
{"message":"{\"_\":\"user\",\"pFlags\":{\"contact\":true},\"flags\":2175,\"id\":421775832,\"access_hash\":\"8579095166420383836\",\"first_name\":\"دلکش\",\"last_name\":\"چالاکی\",\"username\":\"Betym11356\",\"phone\":\"989126159776\",\"photo\":{\"_\":\"userProfilePhoto\",\"photo_id\":\"1811513405139429339\",\"photo_small\":{\"_\":\"fileLocation\",\"dc_id\":4,\"volume_id\":\"455032489\",\"local_id\":485722,\"secret\":\"12099548278164429458\"},\"photo_big\":{\"_\":\"fileLocation\",\"dc_id\":4,\"volume_id\":\"455032489\",\"local_id\":485724,\"secret\":\"313431783423483716\"}},\"status\":{\"_\":\"userStatusOffline\",\"was_online\":1564084837}}","phone":"989126159776","@version":"1","typ":"telegram_contacts","access_hash":"8579095166420383836","id":421775832,"@timestamp":"2020-01-26T13:50:12.793Z","path":"/home/user/mirror2/users_5d38e984ce828ee03a4789ee.log","username":"Betym11356","type":"redis","flags":2175,"host":"ubuntu","imported_from":"telegram_contacts"}
{"index": {"_type": "_doc", "_id": "p5gr4m8BAObvGO9GQ4_B"}}
{"message":"{\"_\":\"user\",\"pFlags\":{\"contact\":true},\"flags\":2103,\"id\":171873228,\"access_hash\":\"13248517514388945915\",\"first_name\":\"ویس\",\"last_name\":\"تورتکی\",\"phone\":\"989372499383\",\"photo\":{\"_\":\"userProfilePhoto\",\"photo_id\":\"738189893774190623\",\"photo_small\":{\"_\":\"fileLocation\",\"dc_id\":4,\"volume_id\":\"439634863\",\"local_id\":87854,\"secret\":\"241528711325634206\"},\"photo_big\":{\"_\":\"fileLocation\",\"dc_id\":4,\"volume_id\":\"439634863\",\"local_id\":87856,\"secret\":\"6022220707203794397\"}}}","phone":"989372499383","@version":"1","typ":"telegram_contacts","access_hash":"13248517514388945915","id":171873228,"@timestamp":"2020-01-26T13:50:12.792Z","path":"/home/user/mirror_01/users_5d65f610ec18aa615a5f580c.log","type":"redis","flags":2103,"host":"ubuntu","imported_from":"telegram_contacts"}
{"index": {"_type": "_doc", "_id": "qJgr4m8BAObvGO9GQ4_B"}}
{"message":"{\"_\":\"user\",\"pFlags\":{\"contact\":true},\"flags\":2175,\"id\":54581106,\"access_hash\":\"16670232207411597190\",\"first_name\":\"آزاده\",\"last_name\":\"نازچهری\",\"username\":\"mehdiomidii\",\"phone\":\"989121447728\",\"photo\":{\"_\":\"userProfilePhoto\",\"photo_id\":\"234424065705749301\",\"photo_small\":{\"_\":\"fileLocation\",\"dc_id\":4,\"volume_id\":\"446735579\",\"local_id\":362838,\"secret\":\"9556479517471012490\"},\"photo_big\":{\"_\":\"fileLocation\",\"dc_id\":4,\"volume_id\":\"446735579\",\"local_id\":362840,\"secret\":\"8435444578550263608\"}},\"status\":{\"_\":\"userStatusRecently\"}}","phone":"989121447728","@version":"1","typ":"telegram_contacts","access_hash":"16670232207411597190","id":54581106,"@timestamp":"2020-01-26T13:50:12.792Z","path":"/home/user/mirror2/users_5d38e984ce828ee03a4789ee.log","username":"mehdiomidii","type":"redis","flags":2175,"host":"ubuntu","imported_from":"telegram_contacts"}
{"index": {"_type": "_doc", "_id": "qZgr4m8BAObvGO9GQ4_B"}}

现在我想将 data 列表值插入 SQLite。我该怎么做?

您需要有一个包含这些列的 table(例如用户):idfirstNamelastNameuserIdphone.

然后:

for record in data:
    first_name, last_name, user_id, phone = record
    cur.execute(
        'INSERT INTO users (firstName, lastName, userId, phone)'
        ' VALUES (?, ?, ? ,?)',
        (first_name, last_name, user_id, phone))