• Python提取网页数据后导出表格并且数据转化为json


    Python输出CSV文件

    import sys
    import csv
    import cx_Oracle
    connection = raw_input("Enter Oracle DB connection (uid/pwd@database) : ")
    orcl = cx_Oracle.connect(connection)
    curs = orcl.cursor()
    printHeader = True # include column headers in each table output
    sql = "select * from tab" # get a list of all tables
    curs.execute(sql)
    for row_data in curs:
    if not row_data[0].startswith('BIN$'): # skip recycle bin tables
    tableName = row_data[0]
    # output each table content to a separate CSV file
    csv_file_dest = tableName + ".csv"
    outputFile = open(csv_file_dest,'w') # 'wb'
    output = csv.writer(outputFile, dialect='excel')
    sql = "select * from " + tableName
    curs2 = orcl.cursor()
    curs2.execute(sql)
    if printHeader: # add column headers if requested
    cols = []
    for col in curs2.description:
    cols.append(col[0])
    output.writerow(cols)
    for row_data in curs2: # add table rows
    output.writerow(row_data)
    outputFile.close()

    for row, row_date in enumerate(data):
    worksheet.write_row(row+1, 0, row_date)
    print time.ctime()
    cursor.close()
    con.close()
    workbook.close()

    转化为json串

    import sys
    import cx_Oracle
    import json


    orcl = cx_Oracle.connect('xxx/xxx@orcl')

    jsonData = []
    curs2 = orcl.cursor()
    sql = "select * from bctb where url='http://bc.58.com/zufang/30386873025067x.shtml'"
    curs2.execute(sql)
    i=0

    for row in curs2:
    result={}
    result['nm'] = str(row[0])
    result['dc'] = str(row[1])
    result['iu'] = str(row[2])
    result['it'] = str(row[3])
    jsonData.append(result)
    jsondatar = json.dumps(jsonData,ensure_ascii=False,indent=4)
    print jsondatar

    写入xls文件

    import sys
    import xlwt
    import cx_Oracle

    wbk=xlwt.Workbook()

    sheet=wbk.add_sheet('foobar', cell_overwrite_ok=True)

    sheet.write(0,0,‘QQ’)

    wbk.save("foobar.xls")

    合并成功版(能够输出json串和xls文件)

    import sys
    import xlwt
    import cx_Oracle
    import json

    orcl = cx_Oracle.connect('xxx/xxx@orcl')
    jsonData = []
    curs2 = orcl.cursor()
    sql = "select * from bctb "
    curs2.execute(sql)
    i=0
    wbk=xlwt.Workbook()
    sheet=wbk.add_sheet('foobar', cell_overwrite_ok=True)
    for row in curs2:
    result={}
    result['url'] = row[0]
    result['name'] =row[1]
    result['jieshao'] = row[2]
    result['diqu'] = row[3]
    jsonData.append( result)
    sheet.write(i,0,row[0])
    sheet.write(i,1,row[1].decode('utf-8'))
    sheet.write(i,2,row[2].decode('utf-8'))
    sheet.write(i,3,row[3].decode('utf-8'))
    i=i+1

    wbk.save("foobar.xls")
    jsondatar = json.dumps(jsonData, ensure_ascii=False,indent=4)
    #对jsondata可以进行数组操作,但是对jsondatar不行


    print jsondatar

  • 相关阅读:
    有点感叹,陪伴一年多的py2终于换py3了
    一句话检测XSS
    Mongodb3.4异常无法启动的处理 Process: 6874 ExecStart=/usr/bin/mongod --config /etc/mongod.conf (code=exited, status=100)
    Hadoop完全云计算平台搭建
    MySQL ERROR 3009 (HY000): Column count of mysql.user is wrong. Expected 45, found 42. Created with MySQL 50560, now running 50729. Please use mysql_upgrade to fix this error.
    v-on(事件处理)
    javascript获取以及设置光标位置
    小程序图片处理
    vue api
    处理回车提交、ctrl+enter和shift+enter都不提交->textarea正常换行
  • 原文地址:https://www.cnblogs.com/cwmizlp/p/7110794.html
Copyright © 2020-2023  润新知