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()

原文地址:https://www.cnblogs.com/stevenliu1030/p/10050873.html

时间: 2024-10-09 13:42:10

python-文件读取json数据写到数据库的相关文章

远程读取json数据并写入数据库

参考:http://www.jb51.net/article/39937.htm $curlPost = 'a=1&b=2';//模拟POST数据$ch = curl_init();curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:0.0.0.0', 'CLIENT-IP:0.0.0.0'));  //构造IPcurl_setopt($ch, CURLOPT_REFERER, "http://www.jb51.net/

利用Python读取json数据并求数据平均值

要做的事情:一共十二个月的json数据(即12个json文件),json数据的一个单元如下所示.读取这些数据,并求取各个(100多个)城市年.季度平均值. { "time_point": "2014-01", "area": "***", "aqi": "71", "pm2_5": "47", "pm10": "69&

用python在后端将数据写入到数据库并读取

用python在后端将数据写入到数据库: # coding:utf-8 import pandas as pd from sqlalchemy import create_engine # 初始化数据库连接,使用pymysql模块 # MySQL的用户:root, 密码:147369, 端口:3306,数据库:mydb engine = create_engine('mysql+pymysql://root:[email protected]:3306/python1') import nump

一文贯通python文件读取

p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; -webkit-hyphens: auto; font: 24.0px 'Helvetica Neue'; color: #3e3e3e; -webkit-text-stroke: #3e3e3e} p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; -webkit-hyphens: auto; font: 16.0px 'Helvetica Neue'; color: #8c8c8c; -w

Python文件读取和数据处理

一.python文件读取 1.基本操作 读取文件信息时要注意文件编码,文件编码有UFT-8.ASCII或UTF-16等. 不过在python中最为常用的是UTF-8,所以如果不特别说明就默认UTF-8编码. 读取文件可以使用 rt 模式下的 open()函数,示例如下: #以字符串的形式读取一个文件 with open('somefile.txt', 'rt') as f: data = f.read() with open('somefile.txt', 'rt') as f: for lin

iOS彩票项目--第七天,初次读取json数据、KVC转模型技巧、运行时字典转模型以及初步对显示网页的操作并且跟踪标签

一.初次读取json数据 二.KVC转模型技巧,这里的技巧主要解决的是字典中的key 与 模型中有的属性对应不起来的时候 的解决办法 <方法1> <方法2>运行时字典转模型,运行时自己一直很晕.不过还是整理下来,方便以后用. 这里直接创建了一个分类. 头文件代码 1 // 2 // NSObject+Model.h 3 // Chaos_G 4 // 5 6 #import <Foundation/Foundation.h> 7 8 @interface NSObjec

Delphi中使用python脚本读取Excel数据

Delphi中使用python脚本读取Excel数据2007-10-18 17:28:22标签:Delphi Excel python原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://seewind.blog.51cto.com/249547/46669前段时间,在正式项目中使用Python来读取Excel表格的数据.具体需求是,项目数据库中有些数据需要根据Excel表格里面的数据进行一些调整,功能应该比较简单.为了学习Pyth

Java解析(读取)Json数据

以前看过书上说,XML是web service间传输信息的标准格式吧,就看了看XML.最近在做个网站,又说是有了JSON,第一回听说就看了看,总结总结一下. 1.JSON介绍 JSON比XML简单,主要体现在传输相同信息的情况下,文件的大小不同. JSON只用于传输信息,XML还可以用于配置文件的使用. JSON中的符号主要有: " , [ {: 2.JSON中的数组和对象 2.1数组(JSONArray) 数组用一对[],表示存放的是一般的数组数据. 如:["11",&qu

当向后台插入或读取JSON数据遇见回车时

今天在项目中发现,当插入或读取JSON数据时遇见回车符,返回JSON数据格式时会报错(firebug里体现为乱码),百度了一下发现JSON不支持字符串里存在回车! 解决办法: 在向接口插入带json格式的数据之前,将回车等特殊符合替换成json接受的符号: 在向接口请求读取json格式的数据时,将回车等特殊符合替换成json接受的符号: 发送到后台 myPostStr.replace(/[\r\n]/g,"|"); //将myStr字符串里的回车和换行符替换成"|"