记录python3查询mysql 并解析json字符串的过程

有个需求,需要找出数据库表中保存报文的objectId,这个需要如果使用创建spring boot工程实现起来先对简单,为了减少代码量,这里用python脚本来实现。

运行环境为  python3.6   如果没有安装pymysql 模块 需要先进行安装。

通过数据库查询出的报文格式如下:

{
	"createTime": "2021-07-30 21:12:47",
	"objectId": "22123sdsd-f041-40b9-9a7b-3223",
	"objectInfo": {
		"InDisk": [
			{
				"objectId": "44444-78f0-404e-8497-ddddd"
			}
		]
	},
	"taskId": "20210730211146949505"
}

python脚本如下:

#!/usr/bin/python3
 
import pymysql
import json
import datetime

db = pymysql.connect(host='ip',
                     user='username',port=3306,
                     passwd='password',
                     database='test') 
cursor = db.cursor()
sql=" SELECT id,taskid,rcontent  from  t_table "
try:
   cursor.execute(sql)
   results = cursor.fetchall()
   date_p = datetime.datetime.now().date()
   str_p = str(date_p)
   f = open("D:\\coding\\output-"+str_p+".txt", "w")
   for row in results:
      id = row[0]
      taskid = row[1]
      receivecontent = row[2]
      d = json.loads(rcontent)
      if (d.__contains__('objectId') and d['objectId'] is  not None):
       print(d['objectId'])
       f.write(d['objectId']+"\n")
      if (d.__contains__('objectInfo') and  d['objectInfo'] is  not None):
          if (d['objectInfo'].__contains__('InDisk') and  d['objectInfo']['InDisk'] is not None):
              neids = d['objectInfo']['InDisk']
              for neid in neids:
                  if (neid.__contains__('objectId') and  neid['objectId'] is  not None):
                      print(neid['objectId'])
                      f.write(d['objectId']+"\n")
except:
   print ("Error: unable to fetch data")
db.close()

此处只是将解析后的输出到文件,也可以存入中间表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值