1. 程式人生 > >python-從檔案讀取json資料寫到資料庫

python-從檔案讀取json資料寫到資料庫

#!/bin/env python
#coding=utf-8

import sys
import urllib2
import json
import datetime
import pymysql as MySQLdb
import time
from itertools import islice 

reload(sys)
sys.setdefaultencoding('utf-8')

mysql_conn = MySQLdb.connect(host="127.0.0.1",user="admin",passwd="123456",db="test",port=3306,charset="UTF8")
mysql_cursor = mysql_conn.cursor()

if __name__=='__main__':
	today = datetime.date.today().strftime('%Y%m%d') if len(sys.argv)<2 else sys.argv[1]
	yesterday = (datetime.datetime.strptime(today,'%Y%m%d')-datetime.timedelta(days=1)).strftime('%Y%m%d')
	#print 'processing date %s' % (yesterday)
	logFilePath = '/data1/trace_data/daystat.'+yesterday+'.dat'
	#print logFilePath
	logFile = open(logFilePath)
	i = 0
	print 'delete old data...'
	#mysql_cursor.execute("delete from test_xx where log_date=%(log_date)s",{'log_date':yesterday})
	print "finish deleting"
		
	#跳過前兩行   
	for line in islice(logFile,2,None): 
		#讀取資料,獲取欄位資訊
		lineData = json.loads(line)
		#log_date = lineData.get('day')
		log_date = time.strftime("%Y%m%d", time.localtime(lineData.get('day')))
		#if log_date != yesterday:
		#continue
		#print lineData
		channel = lineData.get('channel')
		Id = lineData.get('Id')
		total_time = lineData.get('total_time')
		xx_time = lineData.get('xx_time')
		oo_time = lineData.get('oo_time')
		distance = lineData.get('distance')
		xx_distance = lineData.get('xx_distance')
		oo_distance = lineData.get('oo_distance')
		id = lineData.get('_id')
		sid_num =  lineData.get('sid_num')	
		for address in lineData.get('city','none'):
           # print  lindeData.get('city','none')
			if type(address) != str:
				province = address.get('province','null')
				city = address.get('city','null')
			else:
				province = "null"
				city = "null"
			print city

			mysql_cursor.execute("insert into test_xx(log_date,channel,city,Id,total_time,xx_time,oo_time,distance,xx_distance,oo_distance,id,sid_num,province) values(%(log_date)s,%(channel)s, %(city)s,%(Id)s,%(total_time)s,%(xx_time)s,%(oo_time)s,%(distance)s, %(xx_distance)s,%(oo_distance)s,%(id)s,%(sid_num)s,%(province)s);",{'log_date':log_date,'channel':channel,'city':city,'Id':Id,'total_time':total_time,'xx_time':xx_time,'oo_time':oo_time,'distance':distance,'xx_distance':xx_distance,'oo_distance':oo_distance,'id':id,'sid_num':sid_num,'province':province})
			print log_date,channel,city,Id,total_time,xx_time,oo_time,distance,xx_distance,oo_distance,id,sid_num,province
			i += 1
	print i
	mysql_conn.commit()
	mysql_conn.close()


相關推薦

python-檔案讀取json資料資料庫

#!/bin/env python #coding=utf-8 import sys import urllib2 import json import datetime import pymysql as MySQLdb import time from itert

python-檔案讀取json資料資料庫

#!/bin/env python#coding=utf-8 import sysimport urllib2import jsonimport datetimeimport pymysql as MySQLdbimport timefrom itertools import islice reload(s

python檔案讀取URL,導致爬蟲失敗

需求:從檔案中逐行讀取md5字串,作為URL引數抓取某個介面返回的內容,並儲存到資料庫。 問題:介面返回請求引數錯誤,經過對比發現直接在URL中寫死MD5引數就沒問題,資料正常返回。 解決過程: 1.首先排除了從檔案中讀取的字串,和直接寫的字串編碼不同的問題。 2.後面想到tx

python .txt檔案讀取資料處理總結

1、處理包含資料的檔案 最近利用Python讀取txt檔案時遇到了一個小問題,就是在計算兩個np.narray()型別的陣列時,出現了以下錯誤: TypeError: ufunc 'subtract' did not contain a loop wi

python 檔案讀取資料,同時去除掉空格和換行

從檔案中讀取資料,同時去除掉空格和換行,程式碼如下 import numpy as np def sort(path): w = open(path,'r') l = w.readlines() col=[] for k in l: k = k.strip('\n')

Python--檔案讀取資料

學習python時,發現在使用with open('pi_digits.text') as file_object時,使用相對路徑,總是出現NotFoundFileError的錯誤,後來想到使用絕對路徑。書中提到的在Linux環境中路徑使用的是斜槓(/),在windows環

spark部分json檔案讀取資料【java純程式碼】

package com.bjsxt; import org.apache.hadoop.hdfs.server.namenode.dfsclusterhealth_jsp; import org.apache.spark.SparkConf; import org.apac

python+django讀取json資料,同步資料庫

讀取txt檔案中的json #!/usr/bin/python #coding=utf-8 from django.core.management import setup_environ #import sys #sys.path.append('..') from

IO流讀取資料檔案,將資料寫入資料庫,並記錄資料匯入日誌

流程分析: 資料型別: ROUTE_ID,LXBM,ROAD_NAME,SRC_LON,SRC_LAT,DEST_LON,DEST_LAT 10000,G50,滬渝高速,115.8605349,30.08934467,115.5437817,30.08898601 10001,G

tensorflow--檔案讀取資料

讀取資料-csv tensorflow讀取資料流程 構造檔案佇列 讀取佇列內容 reader = tf.TextLineReader() 解析成一個樣本資料 example, label = tf.decode_csv(value, record_defaults

python檔案中隨機選擇一些資料

從序列x中隨機選擇y條資料作為文字: # -*- coding:utf-8 -*- ##隨機挑選部分內容 # encoding:utf-8 import random from random import randint oldf = open('select_amigo.txt', '

用java實現txt文字檔案批量匯入資料資料庫

今天同事讓我準備一個專案的測試資料,要向一個表中插入上千條記錄,並且保證每條記錄內容不同,如果用手工一條一條插入肯定是不可能,也不會有哪個SB去做這樣的事,我最開始想到了用迴圈,但要求插入的記錄內容不能相同,用迴圈實現比較麻煩,於是我想到了將記錄從文字檔案匯入至資料庫(其實

python 寫入json資料資料庫

json資料格式: # json格式資料 data={ "camera": { "created": "1531925035", "type": 1, "description": "A bridge is a structure

已解決問題:Excel中讀資料資料庫,本地VS執行都成功,網站釋出後不能讀取資料

問題如標題:先上程式碼 String path = Server.MapPath("~/UploadExcel/"); string FileName = path + DateTime.Now.ToString("yyyyMMddHHmmss") + fuload.

python檔案讀取資料到list

背景: 檔案內容每一行是由N個單一數字組成的,每個數字之間由製表符區分,比如: 0    4    3    1    2     2    1    0    3     1    2    0  

Python——儲存、讀取json檔案

python——儲存、讀取json檔案 file = open('test.json','w',encoding='utf-8') data1 = {'name':'john',"age":12} d

關於三級聯動採用獲取json檔案json資料的做法

呼叫方式 /** * 載入address.js * @returns */ layui.config({ base : base+”/rs/control/layuicms2.0-master/js/” //如果a資料夾中直接就是xx.js檔案,則為“../js/” }).ex

C++學習筆記-利用rapidJSON讀取JSON資料

JSON檔案如下: { "errorCode":0, "reason":"OK", "result": {"userId":10086,"name":"中國移動"}, "numbers":[110,120,119,911] } 目錄結構如下:

利用Python PIL cPickle讀取和儲存影象資料庫

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

python檔案的讀和操作

一、開啟檔案 data = open("yesterday",encoding="utf-8").read() # python預設的打字元編碼是unicode,處理不了gbk,但是utf—8可以 print(data) ps:這邊的yesterday檔案是一首英文歌的歌詞