123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- #!/usr/bin/python
- # -*- coding:utf-8 -*-
- import sys
- import os
- from pgdb import Connection
- import json
- sys.path.append(os.path.abspath('..'))
- from util.config import config
- def get_conn():
- conn = Connection(database=config.get('pgsql', 'db'), host=config.get('pgsql', 'host'),
- user=config.get('pgsql', 'user'), password=config.get('pgsql', 'password'))
- return conn
- def insert(sql):
- try:
- conn = get_conn()
- cur = conn.cursor()
- cur.execute(sql)
- conn.commit()
- except Exception as e:
- print(e)
- finally:
- cur.close()
- conn.close()
- def update(sql):
- try:
- conn = get_conn()
- conn.execute(sql)
- conn.commit()
- except Exception as e:
- print(e)
- finally:
- conn.close()
- def get_rows(sql):
- try:
- conn = get_conn()
- return conn.query(sql)
- except Exception as e:
- print(e)
- finally:
- conn.close()
- def get_total(sql):
- conn = None
- try:
- conn = get_conn()
- result = conn.query(sql)
- return int(result[0]['count'])
- except Exception as e:
- print(e)
- finally:
- conn.close()
- def demo():
- sql = "select aid,other_info FROM articles where aid = '5afa6e5a-9004-4182-a743-87d77c97b451'"
- rows = get_rows(sql)
- for row in rows:
- print(row)
- other_info = row['other_info']
- print(other_info)
- other_info_json = json.loads(other_info)
- print(other_info_json.get('abstract'))
- def demo1():
- sql = "select count(*) FROM articles"
- total = get_total(sql)
- print(total)
- PAGE_SIZE = 50
- def demo2(offset):
- sql = "select aid,other_info FROM articles order by aid LIMIT %s OFFSET %s"
- update_sql = '''
- UPDATE articles
- set other_info = %s
- WHERE aid = %s
- '''
- rows = get_rows(sql % (PAGE_SIZE, 0))
- conn = get_conn()
- for row in rows:
- aid = row['aid']
- other_info = json.loads(row['other_info'])
- if 'abstract' in other_info:
- del other_info['abstract']
- if 'notes' in other_info:
- del other_info['notes']
- if 'content' in other_info:
- del other_info['content']
- print(json.dumps(other_info), aid)
- conn.execute(update_sql, (json.dumps(other_info), aid))
- conn.close()
- def demo3():
- for i in range(0, 100, 50):
- demo2(i)
- if __name__ == "__main__":
- demo1()
|