欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

pymysql,csv,json,使用

程序员文章站 2022-05-28 16:47:04
...

pymysql

import pymysql

host = "127.0.0.1"
port = 3306
user = "username"
password = "pwd"
charset = "utf8"
#连接数据库(使用非key value形式时候出现File not found错误)
dbc = pymysql.connect(host=host,  user=user, password  = password, charset = charset )
# 拼接sql语句
sql = "select * from tableA"
#
cursor.execute(sql)
#map 方式(推荐)
sql = "select %s from tableA where cloumn = %s"
map方式
cursor.execute(sql, tuple )

data = cursor.fetchall() #或data = cursor.fetchone()

print(data)

csv

import csv
with open('example.csv', 'w', encoding="gbk") as f:
    writer = csv.writer(f)
    for row in datas:
        writer.writerow(row)
     #或者 writer.writerows(datas)

json

import json

dict2 = {........}

f  = open(fname, "w")
json.dump(json_str, f)
f.close()

f = open(fname, "r")
dict1 = json.load(f)
f.close()

datetime.datetime

import datetime
#datetime对象转格式化时间字符
datetime.datetime(2018, 1, 5, 15, 19, 59).strftime("%Y-%m-%d %H:%M:%S")
输出 2018-01-05 15:19:59

问题:

datetimeTypeError: datetime.datetime(2017, 3, 21, 2, 11, 21) is not JSON serializable。

解决方法

就是重写构造json类,遇到日期特殊处理,其余的用内置的就行。

import json
import datetime

class DateEncoder(json.JSONEncoder):  
    def default(self, obj):  
        if isinstance(obj, datetime.datetime):  
            return obj.strftime('%Y-%m-%d %H:%M:%S')  
        elif isinstance(obj, date):  
            return obj.strftime("%Y-%m-%d")  
        else:  
            return json.JSONEncoder.default(self, obj) 

使用时,调用上面定义的函数即可,如下:

print json.dumps(self_data, cls=DateEncoder)