python+django读取json数据,同步数据库
[["account_detail", 1],
["account", 1], ["account_recharge", 3]]
########################################################
#coding=utf-8
from django.core.management import setup_environ
#import sys
#sys.path.append(‘..‘)
from payment import settings
setup_environ(settings)
#------------------------------------
from datetime import datetime,date,timedelta
from payment.models import *
from django.db.models import Q,Avg,Sum,Count
from django.db import connection
from django.db import transaction
from django.contrib.sessions.models import Session
import json
import time
from decimal import *
from payhandler import mytest,plans
from payment.app import log
import os
import sys
import re
logger=log.get_logger(‘syncdb‘,__name__)
data={}
def writetxt(jdata):
f=open(‘../../../payment_shadow/syncdb.txt‘,‘w‘)
f.write(jdata)
f.close()
def test4(data1):
#把所有表对象放到一个元组中
tab=(account,account_detail,account_recharge,account_recharge_log,user_login_log,credit_class,credit_rule,
festival_datelist,excute_datelist,schedule_list,credit_exec,partner_credit,
partner_credit_detail,latefee_detail,account_status_log,messages,ignore_date_list,amount_level,
account_daily_summary,account_daily_summary_detail)#需要同步的对象
for key ,values in data1.items():
tabstr=values[0]
if(len(values)==1)
id=1
id=int(values[2])
for j in tab:
strcut= str(j)[23:-2]
if cmp(strcut,tabstr)==0:
print strcut
r =j.objects.using(‘aa‘).order_by(‘id‘).filter(pk__gt=id)[:2]
if len(r)>0:
for rvalue in r:
rvalue.save()
value1=rvalue
print (u‘数据库:%s,同步到id为:%s‘%(tabstr,value1.id))
data2=[]
data2.append(tabstr)
data2.append(value1.id)
data[tabstr]=data2
#data.append(data2)
else:
print(u"未发现没有同步的数据")
#读取txt中需要同步的json数据
def readjson():
f =open("../../../payment_shadow/log.txt",‘r‘)
line = f.readline()
fdata=line
while line:
line=f.readline()
fdata=fdata+line
f.close()
print (u"***********************同步数据库开始***************************")
starttime=time.time()
print fdata
data1 = json.loads(fdata)
test4(data1)
print data1[0]
jsondata=json.dumps(data)
print jsondata
writetxt(jsondata)
endtime=time.time()
print("同步数据所需的时间:"+str(endtime-starttime)+"秒")
print (u"***********************同步数据库结束***************************")
if __name__==‘__main__‘:
readjson()
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。