step 01:

sudo easy_install AKBusGpsParser

step02: Let's see a sample

#!/usr/bin/python
#coding:UTF-8
#-----------------------------------------
#-- Name : AKBusGpsParser
#-- ORG : Landpack
#-- Author : Frank AK
#-- Addr : Design In IMUT
#-- Email : landpack@sina.com
#-----------------------------------------
import MySQLdb
from AKBusGpsParser import *
#------------------------------------------------
if __name__ == '__main__': url="http://192.168.0.202/zsgj/Service/Common/onBusRealChanged"
line_id_dict={'x1':'','x2':'','h1':'',
'h2':'','k1':'','K1':'',
'K2':'','k2':'','k4':'',
'K4':'','k5':'','K5':''}
sample_gps = """*|GPS|1729|K2|2006-01-04|13:15:08|6000.0000|2000.0000\
|40|140|4|5|1|2006-01-04|13:01:04|0|0|0|01000932|1|#*"""
sample_stn="*|STN|1728|K4|2006-01-04|13:15:23|2|0|1|#" sourcekeys_gps=['star','cmd','bus_no','line_no','gps_date','gps_time','latitude','longitude','speed',
'angle','next_station','people_num','start_end_flag','send_date','send_time',
'direction','run_status','leave_flag','driver_no','driver_flag']
sourcekeys_stn=['star','cmd','bus_no','line_no','stn_date','stn_time','station_no','flag','direction'] insertkeys_gps=['star','cmd','bus_no','line_no','gps_datetime','latitude','longitude','speed',
'angle','next_station','people_num','start_end_flag',
'send_datetime','direction','run_status','leave_flag',
'driver_no','driver_flag']
insertkeys_stn=['star','cmd','bus_no','line_no','direction','stn_dt','flag','station_no'] insertruler_gps=['s','s',1,'s','s',9,'s',1]
insertruler_stn=['s','s',4] updatekeys_gps=['start','cmd','bus_no','line_id','gps_datetime','longitude','latitude','next_station','direction']
updatekeys_stn=['start','cmd','bus_no','line_id','station_no','stn_dt','flag','direction'] updateruler_gps=['s',1,1,'s','s',1,1]
updateruler_stn=['s',5] myflag='|' db=MySQLdb.connect("localhost","your_name","your_passwd","database_name")
cur=db.cursor()
BGP=BusGpsParser(db,cur)
BGP.load(sample_gps,sourcekeys_gps,line_id_dict)
BGP.parser(myflag) BGP.recondition(insertkeys_gps)
insert_data=BGP.wrap(insertruler_gps)
myitem=BGP.items()
sqldup=BGP.equal_value() gps_tn=BGP.tableName('gps')
sql_insert="""INSERT INTO `%s` %s VALUES %s ON DUPLICATE KEY UPDATE %s;""" % (gps_tn,myitem,insert_data,sqldup)
BGP.save(sql_insert) BGP.recondition(updatekeys_gps)
update_data=BGP.wrap(updateruler_gps)
myitem=BGP.items()
sqldup=BGP.equal_value()
sql_update="""INSERT INTO bus_gps %s VALUES %s ON DUPLICATE KEY UPDATE %s;""" % (myitem,update_data,sqldup)
BGP.update(sql_update) BGP.load(sample_stn,sourcekeys_stn,line_id_dict)
BGP.parser(myflag) BGP.recondition(insertkeys_stn)
insert_data=BGP.wrap(insertruler_stn)
myitem=BGP.items()
sqldup=BGP.equal_value()
stn_tn=BGP.tableName('stn')
sql_insert="""INSERT INTO `%s` %s VALUES %s ON DUPLICATE KEY UPDATE %s;""" % (stn_tn,myitem,insert_data,sqldup)
BGP.save(sql_insert) BGP.recondition(updatekeys_stn)
update_data=BGP.wrap(updateruler_stn)
myitem=BGP.items()
sqldup=BGP.equal_value()
sql_update="""INSERT INTO bus_stn %s VALUES %s ON DUPLICATE KEY UPDATE %s;""" % (myitem,update_data,sqldup)
BGP.update(sql_update)
BGP.post(url)

How to use AKBusGpsParser的更多相关文章

随机推荐

  1. java 封装httpclient 的get 和post 请求

    import java.io.ByteArrayOutputStream; import java.io.UnsupportedEncodingException; import java.util. ...

  2. 常见算法是js实现汇总(转载)

    常见算法是js实现汇总 /*去重*/ <script> function delRepeat(arr){ var newArray=new Array(); var len=arr.len ...

  3. CentOS 7将网卡名称eno16777736改为eth0

    http://www.linuxidc.com/Linux/2015-09/123396.htm Linux系统版本:CentOS_7(64位) 一.前言: 今天将CentOS 6.5装回了CentO ...

  4. Z - Fighting 和 Depth-bias

    Depth-bias操作在clipping之后进行实施,所以depth-bias对几何clipping没有影响. 另外需要注意的是:对一个给定体元(primitive),bias值是一个常量,在进行差 ...

  5. Entity Framework 6.0 源码解读笔记(一)

    internal static TResult ExecuteSingle<TResult>(IEnumerable<TResult> query, Expression qu ...

  6. Asp.Net MVC4入门指南(2):添加一个控制器

    MVC代表: 模型-视图-控制器 .MVC是一个架构良好并且易于测试和易于维护的开发模式.基于MVC模式的应用程序包含: · Models: 表示该应用程序的数据并使用验证逻辑来强制实施业务规则的数据 ...

  7. 数字电路-异同步 复位 线与 oc门

    1.同步电路和异步电路的区别是什么? 异步电路:主要是组合逻辑电路,用于产生地址译码器.FIFO或RAM的读写控制信号脉冲,但它同时也用在时序电路中,此时它没有统一的时钟,状态变化的时刻是不稳定的,通 ...

  8. 新建MMS草稿保存后,再进入草稿修改收件人,退出到会话界面,会显示两条草稿

    分析原因:新建彩信草稿,保存后,再打开草稿,修改收件人,再保存会产生新的threadId, 而之前保存的草稿theadId还存在,导致此问题. (必现. 解决方法:将原来的Thread_id和新的收件 ...

  9. Oracle 游标使用

    今天看到一篇很帮的游标,所以强烈转一下 http://www.cnblogs.com/sc-xx/archive/2011/12/03/2275084.html -- 声明游标:CURSOR curs ...

  10. 关于把A表中的数据复制到B表中(整理)

    如果A,B两个表中没有重复数据且表结构一样可以直接 insert into B select * from A 如果结构不一样可以 insert into B(字段列表),select 字段列表 fr ...