簡體   English   中英

pymysql使用python將隨機數插入一列

[英]pymysql inserting random numbers into a column using python

我想使用python在100個隨機數(包括1至100)之間的MySQL列rnd_value插入隨機數。

我將使用以下命令從python生成隨機數

random.randrange(1,100)

我已將MYSQL查詢添加到數據庫

 CREATE SCHEMA `random_values` ;
CREATE TABLE `exercise`.`random_values` (
  `id` INT NOT NULL AUTO_INCREMENT COMMENT '',
  `rnd_value` INT NULL COMMENT '',
  PRIMARY KEY (`id`)  COMMENT '');

我使用pymysql連接器將數據插入MySQL數據庫。 誰能建議我如何使用python將這些隨機數插入MySQL列?

這種簡單的方法怎么樣? 連接到數據庫(假設localhost,數據庫名稱為exercise)。 然后按1推1中的100個值?

import pymysql
import random

with pymysql.connect(host='localhost', db='exercise') as db:
   for i in random.randrange(1,100):
      qry = "INSERT INTO random_values (rnd_value) VALUES ({})".format(i)
      with db.cursor() as cur:
         cur.execute(qry)
         db.commit()

引用了以下部分的內容: Pymysql插入不起作用

安裝pymysql

pip install pymysql

在MySQL中

CREATE TABLE `t1` (`c1` INT NULL,`c2` INT NULL )

python程序

import pymysql
from random import randint
conn = pymysql.connect(host='localhost', port=3306, user="root")
cursor = conn.cursor()
for i in range (1, 101): # since you want to add 100 entries
  v1 = randint(1,100)
  v2 = randint(1,100)
  sql_statement = "INSERT INTO test.t1(c1, c2) VALUES (" + str(v1) + "," + str(v2)  + ")"
  cursor.execute(sql_statement)
conn.commit() # commit to insert records into database
cursor.close()
conn.close()
對於多次插入,請使用某種循環機制,或使用多次插入方法

然后切換到mysql控制台並觸發select語句以查看插入是否成功

感謝所有答復,此代碼似乎對我有用,

import pymysql
import random

connection=pymysql.connect(host='localhost',user='root',password='server',
                           db='exercise',charset='utf8mb4',
                             cursorclass=pymysql.cursors.DictCursor)


try:
    with connection.cursor() as cursor:
        for i in range (1, 101):
            j=random.randrange(1,100)
            sql = "INSERT INTO exercise.random_values(rnd_value) VALUES (%s)"
            cursor.execute(sql,(j))
            connection.commit()

finally:
    connection.close()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM