You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python从SQL文件提取email和password并按指定格式输出

问题:从SQL INSERT语句中提取指定字段并格式化输出

现有一段SQL INSERT语句:

INSERT INTO `users` VALUES (176447, 'Miguel', 'Lucas', 'MLUCAS3', 'lukszmb2011@hotmail.com', 'lukszmb2011@hotmail.com', '{"_token":"3P8y4r34uPPRMFPJZl8Axq2WgKNHJfPZdMw79PRV","payable_vouchers":[null],"user_leg":"default","payment":"free","sponsor":"611d7018d607b","firstname":"Miguel","lastname":"Lucas","country":"EC","state":"P","zip":"170102","address":"Caupicho Bellavista calle EI8 lote 1458","city":"Quito","gender":"m","phone":"0989267630","email":"lukszmb2011@hotmail.com","wechat":null,"passport":"1723806822","transaction_pass":"5BxLkKhYPLF","username":"MLUCAS3","password":"MLucas3#","confirm_password":"MLucas3#","check":null,"reg_type":null,"cpf":null,"package":15,"location":null,"reg_by":"Free","leg":"default","google2fa_secret":"5EWTTF3LVQ7CI37V"}', '$2y$10$K1eAyJRgYmH5otQtdE6dU.W7NDtiAag6jwBKliWS.CORd..7UgTjK', 'default', '613166ea33f0a', 'L', 'eyJpdiI6IllBRjB0QXQrQUlTekVyKzdaSC9zOUE9PSIsInZhbHVlIjoiNmFNTGN3T2ljZmFSM3phU0ZNRXBLUT09IiwibWFjIjoiMzY0NTg5NDI0MzQxMTk3YTZhNjMxZDI4YmM0N2IzYjE3NTJhMGY0NTAyMjdiNzQ0MjBjMTkwMzYxNGM3NzIzNiJ9', '5BxLkKhYPLF', 1, 1, 'Free', 'yes', 'yes', '0', NULL, NULL, 0, 0, 0, 0, 0, 12, 0, NULL, 'eyJpdiI6IlYyVjVvVm16TjlaRGVRZHdhWllsVWc9PSIsInZhbHVlIjoidVlQY1luQnBDSzNxN25LVC82bFZpRXgySEVDS1dyalFKWEQ2ZjFiVlVSaz0iLCJtYWMiOiJkZjU2M2EzN2NjZGZlNDljNjg4MzY0ODEwZTY2MTY1ZTE2NzBmMDNiZTIzOTFhNzRlMThlNDNlMWNjNTAxMGI3In0=', '', 0, 1, 0, 0, NULL, '2021-09-03 00:06:02', '2021-09-03 02:35:19', NULL, NULL, 0, '0');

需要提取语句中JSON字段里的"email":"lukszmb2011@hotmail.com"和"password":"MLucas3#"内容,并按email:password的格式输出。

解决方案

方法1:正则表达式直接匹配

适合快速提取,无需完整解析JSON的场景:

import re

sql_statement = """INSERT INTO `users` VALUES (176447, 'Miguel', 'Lucas', 'MLUCAS3', 'lukszmb2011@hotmail.com', 'lukszmb2011@hotmail.com', '{"_token":"3P8y4r34uPPRMFPJZl8Axq2WgKNHJfPZdMw79PRV","payable_vouchers":[null],"user_leg":"default","payment":"free","sponsor":"611d7018d607b","firstname":"Miguel","lastname":"Lucas","country":"EC","state":"P","zip":"170102","address":"Caupicho Bellavista calle EI8 lote 1458","city":"Quito","gender":"m","phone":"0989267630","email":"lukszmb2011@hotmail.com","wechat":null,"passport":"1723806822","transaction_pass":"5BxLkKhYPLF","username":"MLUCAS3","password":"MLucas3#","confirm_password":"MLucas3#","check":null,"reg_type":null,"cpf":null,"package":15,"location":null,"reg_by":"Free","leg":"default","google2fa_secret":"5EWTTF3LVQ7CI37V"}', '$2y$10$K1eAyJRgYmH5otQtdE6dU.W7NDtiAag6jwBKliWS.CORd..7UgTjK', 'default', '613166ea33f0a', 'L', 'eyJpdiI6IllBRjB0QXQrQUlTekVyKzdaSC9zOUE9PSIsInZhbHVlIjoiNmFNTGN3T2ljZmFSM3phU0ZNRXBLUT09IiwibWFjIjoiMzY0NTg5NDI0MzQxMTk3YTZhNjMxZDI4YmM0N2IzYjE3NTJhMGY0NTAyMjdiNzQ0MjBjMTkwMzYxNGM3NzIzNiJ9', '5BxLkKhYPLF', 1, 1, 'Free', 'yes', 'yes', '0', NULL, NULL, 0, 0, 0, 0, 0, 12, 0, NULL, 'eyJpdiI6IlYyVjVvVm16TjlaRGVRZHdhWllsVWc9PSIsInZhbHVlIjoidVlQY1luQnBDSzNxN25LVC82bFZpRXgySEVDS1dyalFKWEQ2ZjFiVlVSaz0iLCJtYWMiOiJkZjU2M2EzN2NjZGZlNDljNjg4MzY0ODEwZTY2MTY1ZTE2NzBmMDNiZTIzOTFhNzRlMThlNDNlMWNjNTAxMGI3In0=', '', 0, 1, 0, 0, NULL, '2021-09-03 00:06:02', '2021-09-03 02:35:19', NULL, NULL, 0, '0');"""

# 匹配目标字段
email_match = re.search(r'"email":"([^&]+)"', sql_statement)
password_match = re.search(r'"password":"([^&]+)"', sql_statement)

if email_match and password_match:
    print(f"{email_match.group(1)}:{password_match.group(1)}")
else:
    print("未找到目标字段")

运行输出:

lukszmb2011@hotmail.com:MLucas3#

方法2:解析JSON字段(更严谨)

针对目标字段在转义JSON字符串中的场景,先还原JSON再解析:

import re
import json

sql_statement = """INSERT INTO `users` VALUES (176447, 'Miguel', 'Lucas', 'MLUCAS3', 'lukszmb2011@hotmail.com', 'lukszmb2011@hotmail.com', '{"_token":"3P8y4r34uPPRMFPJZl8Axq2WgKNHJfPZdMw79PRV","payable_vouchers":[null],"user_leg":"default","payment":"free","sponsor":"611d7018d607b","firstname":"Miguel","lastname":"Lucas","country":"EC","state":"P","zip":"170102","address":"Caupicho Bellavista calle EI8 lote 1458","city":"Quito","gender":"m","phone":"0989267630","email":"lukszmb2011@hotmail.com","wechat":null,"passport":"1723806822","transaction_pass":"5BxLkKhYPLF","username":"MLUCAS3","password":"MLucas3#","confirm_password":"MLucas3#","check":null,"reg_type":null,"cpf":null,"package":15,"location":null,"reg_by":"Free","leg":"default","google2fa_secret":"5EWTTF3LVQ7CI37V"}', '$2y$10$K1eAyJRgYmH5otQtdE6dU.W7NDtiAag6jwBKliWS.CORd..7UgTjK', 'default', '613166ea33f0a', 'L', 'eyJpdiI6IllBRjB0QXQrQUlTekVyKzdaSC9zOUE9PSIsInZhbHVlIjoiNmFNTGN3T2ljZmFSM3phU0ZNRXBLUT09IiwibWFjIjoiMzY0NTg5NDI0MzQxMTk3YTZhNjMxZDI4YmM0N2IzYjE3NTJhMGY0NTAyMjdiNzQ0MjBjMTkwMzYxNGM3NzIzNiJ9', '5BxLkKhYPLF', 1, 1, 'Free', 'yes', 'yes', '0', NULL, NULL, 0, 0, 0, 0, 0, 12, 0, NULL, 'eyJpdiI6IlYyVjVvVm16TjlaRGVRZHdhWllsVWc9PSIsInZhbHVlIjoidVlQY1luQnBDSzNxN25LVC82bFZpRXgySEVDS1dyalFKWEQ2ZjFiVlVSaz0iLCJtYWMiOiJkZjU2M2EzN2NjZGZlNDljNjg4MzY0ODEwZTY2MTY1ZTE2NzBmMDNiZTIzOTFhNzRlMThlNDNlMWNjNTAxMGI3In0=', '', 0, 1, 0, 0, NULL, '2021-09-03 00:06:02', '2021-09-03 02:35:19', NULL, NULL, 0, '0');"""

# 提取转义后的JSON字符串
json_match = re.search(r'\'({".*?})\'', sql_statement)
if json_match:
    # 还原HTML转义字符
    raw_json = json_match.group(1).replace('"', '"')
    user_data = json.loads(raw_json)
    # 提取目标字段
    email = user_data.get('email')
    password = user_data.get('password')
    if email and password:
        print(f"{email}:{password}")
    else:
        print("JSON中未找到目标字段")
else:
    print("未找到JSON字段")

运行输出同样为:

lukszmb2011@hotmail.com:MLucas3#

内容的提问来源于stack exchange,提问作者Mr Lonely

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 12:48:34