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である
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')