zoukankan      html  css  js  c++  java
  • ypeError: datetime.datetime(2019, 5, 15, 11, 50) is not JSON serializable

    # !/usr/bin/env python
    # -*- coding: utf-8 -*-
    import sys
    import pycontrol.pycontrol as pc
    import time
    import csv
    import ssl
    from datetime import date, datetime
    import urllib2
    import urllib
    import cookielib
    import json
    import httplib
    import json
    import datetime
    import re
    import requests
    import StringIO
    import time
    import sys
    import json
    import re
    import hashlib
    import xlrd
    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)
    def batch_upload(a, b, c):
        s = requests.session()
        cookies = requests.utils.dict_from_cookiejar(s.cookies)
        print cookies
        ##比如要批量关闭CNAPS的所有监控
        username = a
        password = b
        arr01=c
        #
        # ctime=json.dumps(arr01[5], cls=DateEncoder)
        # ctime=ctime.replace('"','')
        # dtime=json.dumps(arr01[9], cls=DateEncoder)
        # dtime = dtime.replace('"', '')
        ctime=arr01[5]
        dtime=arr01[9]
        print 'ctime'
        print ctime
        print 'ctime'
        print 'dtime'
        print dtime
        print 'dtime'
        myurl1 = 'http://20.5.101.171:8080/balantflow/restservices/addTaskApi'
        #data = {'j_username': username, 'j_password': password}
        headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:54.0) Gecko/20100101 Firefox/54.0',
            #'Referer': 'http://20.5.101.171:8080/balantflow/',
            'Content-Type': 'application/json;charset=utf-8',
            'X-Requested-With': 'XMLHttpRequest'
    
        }
        data = {
            "title": arr01[0],
            "content": arr01[1],
            ##事件上报通道
            "channelId": "17",
            # 事件影响级别,默认8级
            "urgency": "1008",
            "owner": '015208',
            "properties": [
                {
                    "key": "type",
    
                    "value": arr01[3]
    
                },
                {
                    "key": "system",
    
                    "value": arr01[2]
    
                },
                # level系统级别
                {
                    "key": "level",
                    "value": "一般"
                },
                {
                    "key": "source",
    
                    "value": arr01[4]
    
                },
                {
                    "key": "matrix",
                    "value": "系统预警"
                },
    
                {
                    "key": "alerttime",
                    "value": ctime
                },
                {
                    "key": "caseReason",
                    "value": arr01[6]
                },
                {
                    "key": "timeCost",
                    "value": arr01[7]
                },
                {
                    "key": "caseType",
                    "value": arr01[8]
                },
                {
                    "key": "recoverTime",
                    "value": dtime
                }
            ]
        }
        print json.dumps(data)
      # responce = s.post(myurl1, data=json.dumps(data), headers=headers, timeout=10)
      # print responce.content
      # print responce.status_code
    def read_excel(a):
        wb = xlrd.open_workbook(filename=a)  # 打开文件
        print wb.sheet_names()  ##获取所有sheet页名字
        print type(wb.sheet_names())
        for x in wb.sheet_names():
            print type(x)
            print  x.encode('utf-8')
        sheet1 = wb.sheet_by_name(u'批量提交')
        print sheet1.name, sheet1.ncols, sheet1.nrows
        b = sheet1.nrows
        list = [[] for i in range(b)]
        for i in range(sheet1.nrows):
            if i == 0:
                pass
            else:
                print sheet1.row(i)
                print type(sheet1.row(i))
                for j in xrange(len(sheet1.row(i))):
                    if j == 5:
                        # print  sheet1.row(i)[j].value
                        # print  sheet1.row(i)[j].value
                        ##excel日期转换,
                        print xlrd.xldate_as_datetime(sheet1.row(i)[j].value, 0)
                        #time.sleep(10)
                        list[i].append(xlrd.xldate_as_datetime(sheet1.row(i)[j].value, 0))
                        # print  sheet1.row(i)[j].value.ctype
                        # print date(sheet1.row(i)[j].value).strftime("%Y-%m-%d %H:%M:%S")
                    elif j == 9:
                        print xlrd.xldate_as_datetime(sheet1.row(i)[j].value, 0)
                        # time.sleep(10)
                        list[i].append(xlrd.xldate_as_datetime(sheet1.row(i)[j].value, 0))
                    else:
                        #print  sheet1.row(i)[j].value
                        list[i].append(sheet1.row(i)[j].value)
        return list
    
    
    ##删除空数组
    newlist = read_excel('test.xlsx')
    while [] in newlist:
        newlist.remove([])
    #print newlist
    for x in newlist:
        print batch_upload('015208','zyj@1985724',x)
        for y in x:
            print y
    
           
           
    C:Python27python.exe C:/Users/tlcb/PycharmProjects/untitled/excel/t5.py
    [u'u6279u91cfu63d0u4ea4', u'u767bu8bb0']
    <type 'list'>
    <type 'unicode'>
    批量提交
    <type 'unicode'>
    登记
    批量提交 10 2
    [text:u'u6570u636eu5e93SQLu95eeu9898u534fu52a9u67e5u770b', text:u'u6570u636eu5e93SQLu53cdu5e94u6162', text:u'u589eu503cu7a0eu7ba1u7406u7cfbu7edf', text:u'u5355u4e2au7528u6237', text:u'u5176u4ed6', xldate:43600.4930555556, text:u'u4e1au52a1u90e8u9700u8981u8c03u6574', number:60.0, text:u'u54a8u8be2u5efau8bae', xldate:43600.5347222222]
    <type 'list'>
    2019-05-15 11:50:00
    2019-05-15 12:50:00
    {}
    ctime
    2019-05-15 11:50:00
    ctime
    dtime
    2019-05-15 12:50:00
    dtime
    Traceback (most recent call last):
      File "C:/Users/tlcb/PycharmProjects/untitled/excel/t5.py", line 169, in <module>
        print batch_upload('015208','zyj@1985724',x)
      File "C:/Users/tlcb/PycharmProjects/untitled/excel/t5.py", line 122, in batch_upload
        print json.dumps(data)
      File "C:Python27libjson\__init__.py", line 243, in dumps
        return _default_encoder.encode(obj)
      File "C:Python27libjsonencoder.py", line 207, in encode
        chunks = self.iterencode(o, _one_shot=True)
      File "C:Python27libjsonencoder.py", line 270, in iterencode
        return _iterencode(o, 0)
      File "C:Python27libjsonencoder.py", line 184, in default
        raise TypeError(repr(o) + " is not JSON serializable")
    TypeError: datetime.datetime(2019, 5, 15, 11, 50) is not JSON serializable
    
    Process finished with exit code 1
    
    
    
    需要进行转换:
        # ctime=json.dumps(arr01[5], cls=DateEncoder)
        # ctime=ctime.replace('"','')
        # dtime=json.dumps(arr01[9], cls=DateEncoder)
        # dtime = dtime.replace('"', '')
        
  • 相关阅读:
    vue子组件获取父组件方法
    css hack
    【Educational Codeforces Round 87 (Rated for Div. 2)】前4题
    【某次ks】20200512
    NoI Online 2反思
    RMQ&LCA
    杂谈
    高手训练矩乘T3
    0118ACM自闭赛
    网络流初步学习笔记
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13348749.html
Copyright © 2011-2022 走看看