有没有人在Python3中使用xlsxwriter生成excel时实现交替行颜色?
data_format = workbook.add_format(
{
'bg_color': '#FFC7CE'
})
worksheet.write(data_row, data_col + 1, row[1], data_format)
Run Code Online (Sandbox Code Playgroud)
这将设置每列的颜色.
我试图将数据从xlsx文件插入到mysqdl表中.我想在表中插入数据,如果主键上有重复,我想更新现有数据,否则插入.我已经编写了脚本,但我意识到这是太多的工作,使用熊猫很快.我怎样才能在熊猫中实现它?
#!/usr/bin/env python3
import pandas as pd
import sqlalchemy
engine_str = 'mysql+pymysql://admin:mypass@localhost/mydb'
engine = sqlalchemy.create_engine(engine_str, echo=False, encoding='utf-8')\
file_name = "tmp/results.xlsx"
df = pd.read_excel(file_name)
Run Code Online (Sandbox Code Playgroud) 我正在将数据从一张表加载到熊猫,然后将该数据插入到新表中。但是,我看到的是字节数组,而不是普通的字符串值。
bytearray(b'TM16B0I8') 它应该是 TM16B0I8
我在这里做错了什么?
engine_str = 'mysql+mysqlconnector://user:pass@localhost/db'
engine = sqlalchemy.create_engine(engine_str, echo=False, encoding='utf-8')
connection = engine.connect()
th_df = pd.read_sql('select ticket_id, history_date', con=connection)
for row in th_df.to_dict(orient="records"):
var_ticket_id = row['ticket_id']
var_history_date = row['history_date']
query = 'INSERT INTO new_table(ticket_id, history_date)....'
Run Code Online (Sandbox Code Playgroud) 如何查看实际插入了多少行?
engine_str = 'mysql+mysqlconnector://root:mypass@localhost/mydb'
engine = sqlalchemy.create_engine(engine_str, echo=False, encoding='utf-8')
connection = engine.connect()
query = "INSERT INTO TEST(a,b,c)VALUES(1,2,3) ON DUPLICATE KEY UPDATE B = VALUES(B), C = VALUES(C)"
try:
connection.execute(query)
except Exception as e:
print(e)
Run Code Online (Sandbox Code Playgroud)
SQLALCHEMY 只是打印出这个 ID。
<sqlalchemy.engine.result.ResultProxy object at 0x0000000007769E80>
Run Code Online (Sandbox Code Playgroud)
PS 这个问题是关于行插入而不是行执行。因此,如果您使用 rowcount,它将显示查询已执行的次数。
重新表述我的问题:有没有办法查看插入和更新的记录数?理想情况下,我想知道那些更新的主键。