Я написал код, который извлекает данные из таблицы и вставляет их в словарь, а затем усекает таблицу и вставляет новые значения в таблицу, однако в тот момент, когда я запускаю код, она немедленно усекает таблицу.
Я попытался удалить усеченный код, однако он все еще усекает таблицу.
import ccxt
import mysql.connector
import os
import sys
import time
from collections import defaultdict
import json
import requests
import logging
import telegram
cnx = mysql.connector.connect(user='root', password='',
host='localhost', database='coinbuys',
auth_plugin='mysql_native_password')
mycursor = cnx.cursor()
sql = """SELECT * FROM coinscores """
mycursor.execute(sql)
myresult = mycursor.fetchall()
for row in myresult:
coin_score_symbol = row[1]
coin_score_database_value = row[2]
print (coin_score_symbol)
print (coin_score_database_value)
#this prints nothing ^
sql = "INSERT INTO BUYWALLDATA3 (COINPAIR, price, size, volumethreshold) VALUES (%s, %s, %s, %s)"
val = [
(whichmarket[f],
var_element_check[0], sum_array_check, volume_threshold)
]
mycursor.executemany(sql, val)
cnx.commit()
print(mycursor.rowcount, "was inserted.")
for key in coins_with_buy_walls.keys():
sql = """SELECT * FROM BUYWALLDATA3 WHERE COINPAIR = '%s' """ % (key)
rows = 0
mycursor.execute(sql)
myresult = mycursor.fetchall()
for row in myresult:
rows = rows + 1
id_table = row[0]
ticker = row[1]
coin_price = row[2]
size_order = row[3]
volume_calculation = row[4]
volume_calculation = row[4] + volume_calculation
#Here would be the truncate statement
for a in coin_score:
coin_final_score = coin_score[a]
sql = "INSERT INTO coinscores (symbol, score) VALUES (%s, %s)"
val = [(a, coin_final_score)]
mycursor.executemany(sql, val)
cnx.commit()
print(mycursor.rowcount, "was inserted.")
# This is the code I used to create the coin scores table
mycursor.execute("CREATE TABLE coinscores (id INT AUTO_INCREMENT PRIMARY KEY, symbol VARCHAR(255), score VARCHAR(255))")
Я включил все свои операторы базы данных, возможно, есть проблема с ними, которая вызывает это.Я ожидаю, что при первом вызове из базы данных будут распечатаны все значения в монетах, а затем стерты и вставлены новые данные.