sqlite3 executemany ничего не вставляя - PullRequest
0 голосов
/ 26 октября 2019

Использование Python для вставки загрузки информации в локальную базу данных, которая будет использоваться, прежде всего, для автономных ссылок в процедуре, на которую я еще не попал.

Я пытаюсь вставить сорок кортежеймассивы (или меньше) в локальную БД процедурно. Тем не менее, данные не отображаются, когда я выбираю все данные в таблице.

Сначала я обнаружил, что не вызывал функцию commit в экземпляре соединения, которую я быстро исправил. Тогда я подумал, что может быть какое-то ограничение на количество кортежей, которые можно вставить в такую ​​функцию, поэтому я разделил отформатированный список на сорок массивов кортежей и попытался вставлять их по одному за раз. Тем не менее, этот метод не решил мою проблему.

Помимо этого, за исключением индивидуальной вставки каждого кортежа (мне нужно вставить около 4,5 тыс. Кортежей). Я не слишком уверен, что делать. Такой метод работает в массивах размером 3-5 кортежей в консоли Python.

Кусок кода, к которому относится этот пост:

    formatted = []
    urls = []

    def walk_files(directory_id):
        files = None

        if not directory_id:
            files = get_files(params, None)
        else:
            files = get_files(params, directory_id)

        for file in files:
            global file_count
            global folder_count

            type = None

            if "folder" in file:
                type = 2
                folder_count = folder_count + 1
                walk_files(file['id'])
            else:
                if "file" not in file:
                    continue
                type = 1
                urls.append((file['id'], file['@microsoft.graph.downloadUrl']))
                file_count = file_count + 1

            sys.stdout.write("\rFiles Formatted: %d Folder Formatted: %d" % (file_count, folder_count))
            sys.stdout.flush()
            formatted.append((file['id'], type, file['name'], file['size'], False, None, directory_id))

    walk_files(None)
    print('\nFormatted %s File(s)/Folder(s)' % len(formatted))
    print("Inserting formatted entries into database.")

    for i in range(math.ceil((len(formatted) / 40))):
        conn = sqlite3.connect('data.db')
        batch = formatted[i * 40: (i + 1) * 40]
        print('Attempting to insert batch sliced from index %s to %s' % (i * 40, (i + 1) * 40))

        cursor = conn.cursor()
        cursor.executemany('INSERT INTO items VALUES (?,?,?,?,?,?,?)', batch)
        conn.commit()
        conn.close()


def get_current_time_in_miliseconds():
    return int(time.time()*1000)


def get_files(params, directory_id):
    url = 'https://graph.microsoft.com/v1.0/me/drive/root/children'

    if directory_id:
        url = 'https://graph.microsoft.com/v1.0/me/drive/items/' + directory_id + "/children"

    response = requests.get(url, headers=params)

    if response.status_code != 200:
       print(response.url)
       print("%s:\n%s" % (response.status_code, response.text))

    # print(response.url)
    return json.loads(response.text)['value']

Какие кортежи в отформатированном массиве выглядят в списке:

[('1D464A8DD283576C!191598', 2, 'Your Natural Image', 41825302, False, None, None), ('1D464A8DD283576C!190801', 1, 'private_key.ppk', 1486, False, None, '1D464A8DD283576C!190798'), ('1D464A8DD283576C!190798', 2, 'root', 1486, False, None, '1D464A8DD283576C!190797'), ('1D464A8DD283576C!190797', 2, 'SSH_Keys', 1486, False, None, '1D464A8DD283576C!190796'), ('1D464A8DD283576C!190796', 2, 'Node', 1486, False, None, '1D464A8DD283576C!190795'), ('1D464A8DD283576C!190795', 2, 'ZoraMagic', 1486, False, None, None), ('1D464A8DD283576C!190799', 1, 'Assessment - English.docx', 146483, False, None, None), ('1D464A8DD283576C!191756', 1, 'Asynchronous Command Wrapper.xml', 3522, False, None, None), ('1D464A8DD283576C!188045', 1, 'Building+1_1458488994', 363356, False, None, None), ('1D464A8DD283576C!191321', 1, 'EAM Case Study Session with Emma Taylor and Gean Taylor.docx', 433029, False, None, None), ('1D464A8DD283576C!191324', 1, 'EAM Case Study Submission Hubby Heart.docx', 419906, False, None, None), ('1D464A8DD283576C!191478', 1, 'EAM Case Study Submission Template Andrew Huddleton.docx', 421028, False, None, None), ('1D464A8DD283576C!191337', 1, 'EAM Case Study Submission Template Jeanette Maron.docx', 421245, False, None, None), ('1D464A8DD283576C!191476', 1, 'EAM Case Study Submission Template Margret Jane-How.docx', 421091, False, None, None), ('1D464A8DD283576C!191482', 1, 'EAM Case Study Submission Template Michelle Whitehead.docx', 421699, False, None, None), ('1D464A8DD283576C!191319', 1, 'EAM Case Study Submission Template.docx', 243605, False, None, None), ('1D464A8DD283576C!190829', 1, 'Event-List-for-Photography-Video.xlsx', 10070, False, None, None), ('1D464A8DD283576C!190738', 1, 'IMG_4277.psd', 139600930, False, None, None), ('1D464A8DD283576C!191312', 1, 'Music - Shortcut.lnk', 774, False, None, None), ('1D464A8DD283576C!189447', 1, 'Reflexology.docx', 29831, False, None, None), ('1D464A8DD283576C!188902', 1, 'Rob and Tim.docx', 140516, False, None, None), ('1D464A8DD283576C!189498', 1, 'TheMasteredPandasPasswords.txt', 359, False, None, None), ('1D464A8DD283576C!188895', 1, 'Vault.jar', 296909, False, None, None)]

`

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...