1 Star 0 Fork 0

ZTMZ Club/ztmz_strange_scripts

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
rbr_pacenote_csv_to_db.py 2.50 KB
一键复制 编辑 原始数据 按行查看 历史
strawhat 提交于 2024-06-22 20:07 . db update
import sqlite3
from loguru import logger
import pandas as pd
ZTMZ_DB_PATH = '/mnt/c/Users/Admin/lab/ztmz/ztmz_pacenote/src/ZTMZ.PacenoteTool.Base/data.zdb'
RBR_DB_PATH = '/mnt/c/Users/Admin/lab/ztmz/ztmz_pacenote/src/ZTMZ.PacenoteTool.RBR/jannemod_v3.zdb'
RBR_CSV_PATH = '/mnt/c/Users/Admin/lab/ztmz/ztmz_pacenote/src/ZTMZ.PacenoteTool.RBR/Jannemod V3.csv'
def main():
conn_ztmz = sqlite3.connect(ZTMZ_DB_PATH)
conn_rbr = sqlite3.connect(RBR_DB_PATH)
c_ztmz = conn_ztmz.cursor()
res = c_ztmz.execute('SELECT id, filename FROM pacenote_filenames')
pacenote_filenames = res.fetchall()
ztmz_filename2id = {filename: id for id, filename in pacenote_filenames}
logger.info(f'loaded {len(ztmz_filename2id)} ztmz pacenote filenames')
df_rbr_pacenote = pd.read_csv(RBR_CSV_PATH)
df_rbr_pacenote['ZTMZSequence'] = df_rbr_pacenote['ZTMZSequence'].fillna('')
rbr_pacenote = []
rbr_pacenote_ztmz = []
rbr_modifier_ztmz = []
# check if all ZTMZSequence are in ztmz
valid_seqs = 0
for i, row in df_rbr_pacenote.iterrows():
rbr_pacenote.append((row["Id"], row['Pacenote'], row['Description'], row['Category']))
if row['ZTMZSequence']:
seqs = row['ZTMZSequence'].split('>')
for seq in seqs:
if seq not in ztmz_filename2id:
logger.error(f'fallback {seq} not found in ztmz, on row: {row["Id"]}: {row["Pacenote"]}, {row["Category"]}, {row["Description"]}')
raise Exception(f'fallback {seq} not found in ztmz')
pass
else:
# ready to insert
pass
valid_seqs += len(seqs)
if row['Category'] == 'MODIFIER':
rbr_modifier_ztmz.extend([(row['Id'], ztmz_filename2id[seq], order_id) for order_id, seq in enumerate(seqs)])
else:
rbr_pacenote_ztmz.extend([(row['Id'], ztmz_filename2id[seq], order_id) for order_id, seq in enumerate(seqs)])
logger.info(f'valid sequences: {valid_seqs} out of {len(df_rbr_pacenote)}')
c_rbr = conn_rbr.cursor()
c_rbr.executemany('INSERT INTO pacenote(`id`, `name`, `description`, `category`) VALUES (?, ?, ?, ?)', rbr_pacenote)
c_rbr.executemany('INSERT INTO pacenote_ztmz(`id`, `ztmz_id`, `order_id`) VALUES (?, ?, ?)', rbr_pacenote_ztmz)
c_rbr.executemany('INSERT INTO modifier_ztmz(`id`, `ztmz_id`, `order_id`) VALUES (?, ?, ?)', rbr_modifier_ztmz)
conn_rbr.commit()
pass
if __name__ == '__main__':
main()
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/ztmz/ztmz_strange_scripts.git
git@gitee.com:ztmz/ztmz_strange_scripts.git
ztmz
ztmz_strange_scripts
ztmz_strange_scripts
master

搜索帮助

23e8dbc6 1850385 7e0993f3 1850385