pythonスクリプトバッチクエリー検証
14139 ワード
1.第三者公衆番号ユーザーopenIdが有効であるかどうかシーン:第三者公衆番号は私達に授権して、第1回は正しい公衆番号を授権して、第2回の誤った人は別の1つの小さい公衆番号を授権して、最後に再び正しい公衆番号を授権して、どれらのユーザーが保存したopenIdが無効であることを検証する必要がある
2.ライブラリのサブテーブル暴力クエリーシーン:データは2つのライブラリに分かれており、各ライブラリには256枚のサブテーブルがあり、総テーブルのデータが失われている.サブテーブルの中でデータの所在を特定する必要があるライブラリとサブテーブルに注意すべきは、javaでabs(f_uuid.hashCode()%256)でサブテーブルの所在を決定し、pythonがjavaのhashメソッドを実現した後、%256が異なる結果をもたらす可能性がある.ハッシュ値は負の値であるため、例えばjavaではabs(−1271147967%256)=abs(−111)=191であるが、pythonでは−1271147967%256=65であり、abs(−1271147967)%256=191、191+65=256である
3.Excelには多くの項目IDがあり、ESから各項目に含まれるレコード数を問い合わせる
2.ライブラリのサブテーブル暴力クエリーシーン:データは2つのライブラリに分かれており、各ライブラリには256枚のサブテーブルがあり、総テーブルのデータが失われている.サブテーブルの中でデータの所在を特定する必要があるライブラリとサブテーブルに注意すべきは、javaでabs(f_uuid.hashCode()%256)でサブテーブルの所在を決定し、pythonがjavaのhashメソッドを実現した後、%256が異なる結果をもたらす可能性がある.ハッシュ値は負の値であるため、例えばjavaではabs(−1271147967%256)=abs(−111)=191であるが、pythonでは−1271147967%256=65であり、abs(−1271147967)%256=191、191+65=256である
import pymysql.cursors
hosts = 'db1','db2'
for i in range(0,2):
#
connect = pymysql.Connect(
host=hosts[i],
port=3306,
user='root',
passwd='test',
db='test',
charset='utf8'
)
#
cursor = connect.cursor()
for j in range(0, 256):
#
sql = "SELECT * FROM t_info_{0:03d} WHERE valid = 1 and company = '%s' ".format(j)
data = (' ')
cursor.execute(sql % data)
for row in cursor.fetchall():
print(str(row))
if(cursor.rowcount > 0):
print(' {0} t_info_{1:03d} '.format(hosts[i],j))
#
cursor.close()
connect.close()
3.Excelには多くの項目IDがあり、ESから各項目に含まれるレコード数を問い合わせる
#coding=utf-8
import requests
import os
import json
from xlrd import open_workbook
from xlutils.copy import copy
def base_dir(filename=None):
return os.path.join(os.path.dirname(__file__),filename)
if __name__ == '__main__':
api_url = 'http://esadmin.***.com/index_project/project/_search'
# rb excel,formatting_info=True excel
wb = open_workbook('./project.xlsx', formatting_info=True)
sheet1 = wb.sheet_by_index(0)
api_header = {
'Content-Type': 'application/json'
}
# , , ,
newwb = copy(wb)
#
newsheet1 = newwb.get_sheet(0)
for row in range(1,sheet1.nrows):
if len(sheet1.cell(row, 1).value)>0:
api_data = {"query":{"bool":{"must":[{"term":{"projectId":sheet1.cell(row, 1).value}},{"range":{"monthId":{"lte":187,"gte":187}}}]}},"from":0,"size":0}
print(api_header, api_data, api_url)
try:
suc = requests.post(url=api_url, headers=api_header, json=api_data, verify=False, timeout=8)
suc = suc.json()
print(suc)
newsheet1.write(row, 2, suc["hits"]["total"])
except requests.exceptions.ReadTimeout:
print("timeout.........")
except:
print("error")
newwb.save('project_result.xls')