1.sqlite3 仅可以处理单个任务问题,多线程往往会面临数据库锁定
因为仅临时存储,后来在创建数据库时,给每个任务开了一个临时数据库,存储数据执行完毕后,删除db
sql_insert_new:INSERT INTO analyze_api_resault_dynamic_detail (analyze_code,Static_analyze_serviceName,Static_analyze_api,branch1,branch2) VALUES (%s,%s,%s,%s,%s)
str:{‘id’: 10347}
static_api = Static_analyze_api[0]
IndexError: list index out of range
原因:
从表里查询上一步数据时候未查询到Static_analyze_api
Static_analyze_api = ‘select Static_analyze_api from analyze_api_resault_static_detail where serviceName = "’ + str(appid) + ‘"AND branch1 = "’ + str(branch1) + ‘"AND branch2 = "’ + str(branch2) + ‘"’
print(“Static_analyze_api”+str(Static_analyze_api))
Static_analyze_resault = mysql_analyze().select_one(Static_analyze_api)
Static_analyze_api = Static_analyze_resault[‘Static_analyze_api’]
往上再找原因
主要是数据库存储Static_analyze_api时,没有做标准格式替换
解决:
用string的replace方法将“号做了替换
3cf时报错\ No newline at end of file
\ No newline at end of file 仅在文件末尾换行符状态发生改变时出现。若两个版本状态一致(无论有或无),则不会显示。这一机制帮助开发者关注可能影响工具链的细微改动。
ai给出的建议:
from unidiff import PatchSet
设置 ignore_whitespace=True 跳过严格换行符检查
patch = PatchSet(patch_text, ignore_whitespace=True)
新版本 unidiff 库(v0.7+)已移除 ignore_whitespace 参数,但旧版本(v0.5.5 及更低)支持该参数。若你使用的版本不一致,会触发该错误。
pip uninstall unidiff
pip install unidiff==0.5.5
3.扫描识别后落库的api接口list中可能存在"[]"和[]这种数据,需要用repalce替换方法做数据标准化处理