#! /usr/bin/python2
# coding=utf-8
import os
import csv
import pymongoglobal stocks'''
mongodb 删除数据库
use test;
db.dropDatabase();
mongodb删除表
db.mytable.drop();
清空表
db.mytable.remove({})
'''

class c_stock:def __init__(self, code, name):self.code = codeself.name = namedef init_mongodb():global stocks# mongodb_link = 'mongodb://127.0.0.1:27017'
    # mongoClient = MongoClient(mongodb_link)
    conn = pymongo.MongoClient("localhost", 27017)conn.stock_list.authenticate("d", "zz")db = conn.stock_liststocks = db.stocks#return stocks

def write_dict(type):stocks.save(type.__dict__)
def deal_data(code1, name1, date_start1, share_total1, share_outstanding1):code = code1.strip()name = name1.strip()date_start = date_start1.strip()share_total = share_total1.strip()share_outstanding = share_outstanding1.strip()cnt = stocks.find({"code":code}).count()#print cnt,"cnt"
    if (1 == cnt):l = stocks.find_one({"code": code})#for i in l:
         #   print i.get("name")
        #    print i.get("code")
        name_find = l.get("name")#name = "adc3"
        #str.decode("g18030") == str.decode("utf8")
        #if (0 != cmp(name, name_find)):
        if (name.decode("utf8") != name_find.decode("utf8")):stocks.update({"code":code}, {"$set":{"name":name, "date_start":date_start, "share_total":share_total ,"share_outstanding":share_outstanding}})print "------update name-------", name, name_find#stocks.update({"code": "123456"}, {$set:{"name": "babc123"}})
    elif (0 == cnt):print "------insert name-------"
        stocks.insert({"code": code, "name": name, "date_start":date_start, "share_total":share_total ,"share_outstanding":share_outstanding})else:print "------remove name-------", cntstocks.remove({"code": code})stocks.insert({"code": code, "name":name, "date_start":date_start, "share_total":share_total ,"share_outstanding":share_outstanding})def get_stock_list_sh():list_name = ['sha.csv', 'shb.csv']for name in list_name:try:csvfile = file(name, 'rb')reader = csv.reader(csvfile)for line in reader:try:# 忽略第一行
                    if reader.line_num == 1:continue
                    #list_code.append(line[0])
                    # print(' said: ', '')
                    i = 2
                    print line[i], line[i+1], line[i+2], line[i+3], line[i+4]deal_data(line[i], line[i+1], line[i+2], line[i+3], line[i+4])except ValueError:pass
            print "name --",name, locals()# csvfile.close()
        except IOError as err:  # 使用as将异常对象,并将其赋值给一个标识符
            print('File Error:' + str(err))  # ‘+’用于字符串直接的连接

        finally:if 'csvfile' in locals():csvfile.close()print "close"

def get_stock_list_sz():list_name = ['sz.csv']for name in list_name:try:csvfile = file(name, 'rb')reader = csv.reader(csvfile)for line in reader:try:# 忽略第一行
                    if reader.line_num == 1:continue
                    #list_code.append(line[0])
                    # print(' said: ', '')
                    i = 5
                    j = 5
                    #print line
                    print "a---",line[i], line[i + 1], line[i + 2], line[i + 3], line[i + 4]print "b---",line[i + j], line[i + 1+ j], line[i + 2+ j], line[i + 3+ j], line[i + 4+ j]if ('' != line[i]):deal_data(line[i], line[i + 1], line[i + 2], line[i + 3], line[i + 4])#print line[i + j]
                    if ('' != line[i + j]):print "-------------------sz---------b-----------------",line[i + j]deal_data(line[i + j], line[i + 1+ j], line[i + 2+ j], line[i + 3+ j], line[i + 4+ j])except ValueError:pass
            print "anme2 ---", name, locals()# csvfile.close()
        except IOError as err:  # 使用as将异常对象,并将其赋值给一个标识符
            print('File Error:' + str(err))  # ‘+’用于字符串直接的连接

        finally:if 'csvfile' in locals():csvfile.close()print "close"

if __name__ == '__main__':init_mongodb()print stocks.count()#stocks.drop();
    get_stock_list_sh()get_stock_list_sz()print stocks.count()

手动下载股票列表 存入mongodb 并更新名字相关推荐

  1. 【爬虫】scrapy下载股票列表(四)——对接mongodb保存数据

    本文是本项目最后一篇,撒花! 前三篇传送门: [爬虫]scrapy下载股票列表(一)--对接selenium中间件: https://blog.csdn.net/yao09605/article/de ...

  2. Python量化交易学习笔记(21)——A股股票列表更新

    在zwPython2020中,股票数据下载更新时,所读取的股票列表文件的目录位置为"zwPython\TQDat\TQDown2020v1\data\tq_wrk_code.csv" ...

  3. A股数据分析之收集数据:股票列表和股价

    数据是进行数据分析的前提,本文主要讲述如何使用Python收集中国沪深两市的基础股票数据:股票列表和股价. 股票列表 众所周知,对于A股,中国有两个交易所即上海证券交易所和深圳证券交易所.我们主要从他 ...

  4. tushare数据存入mysql代码_下载股票的历史日交易数据并存入数据库——基于tushare...

    tushare是一个非常神奇的Python模块包,基于新浪的API,可提供并不限于股票的历史数据. 数据库选用的是sqlite3,单文件,轻量化,不需要配置. 以下是完整代码,且使用的是多线程的方式. ...

  5. A股股票列表下载——从零到实盘2

    目前实盘主要用到的是A股的日线数据,在BaoStock.Tushare.AKShare等平台上,均能免费下载日线数据,我们先选择BaoStock作为数据源.本文记录从BaoStock下载A股股票列表的 ...

  6. 下载股票的历史日交易数据并存入数据库——基于tushare

    https://www.jianshu.com/p/81cc8daea0eb tushare是一个非常神奇的Python模块包,基于新浪的API,可提供并不限于股票的历史数据. 数据库选用的是sqli ...

  7. 用python获取tushare数据并存入mysql数据库(一)股票列表

    编程语言:python 编程工具:pycharm 数据来源:tushare 连接mysql方式:SQLAlchemy 1.创建"股票列表"表结构,存为mysql_tables_st ...

  8. tushare股票列表mysql_用python获取tushare数据并存入mysql数据库(一)股票列表

    编程语言:python 编程工具:pycharm 数据来源:tushare 连接mysql方式:SQLAlchemy 1.创建"股票列表"表结构,存为mysql_tables_st ...

  9. 苹果电脑删除下载的更新文件_软件更新,无需手动下载更新文件。不再依赖QQ浏览器。...

    经过一段时间折腾,学习了一些新玩意. 以后的脚本可以达到不下载更新文件而直接启动就是最新版的,但是全程需要良好网络. 下载链接再放一遍 https://wwa.lanzous.com/b099irtr ...

最新文章

  1. Mybatis ResolverUtil的设计概念
  2. OpenCV运行自定义OCR模型
  3. jquery 滚动条插件
  4. 机器学习从入门到精通50讲(四)-实时数仓应用实践案例
  5. 打开pjsip2.1版本的视频支持
  6. [Node.js]001.安装与环境配置
  7. word转pdf公式乱码_word转换pdf公式乱码怎么办
  8. 2022百度之星程序设计大赛 - 复赛 1003 最大值
  9. 【转】VBA编程入门(二)
  10. 打印预览和实际的打印不一致问题
  11. ACCESS数据库联结表实现
  12. 团队如何开会,开会准则
  13. java 转pem_将Java密钥库转换为PEM格式
  14. 数字化进阶在即,智慧医院建设迎来黄金期-2020爱分析·中国智慧医院行业趋势报告
  15. 2.4g语音遥控器小结
  16. 【信息安全】信息安全风险评估-实践指南
  17. linux cc***防范
  18. STM32读取DHT11中时序的问题,通过逻辑分析仪读取信号
  19. case when 用法
  20. 自媒体有什么副业?做自媒体有哪些变现方式

热门文章

  1. 用GridView实现SPListItemCollection翻页
  2. 在Android中利用iText生成PDF
  3. 使用dom4j来解析相关的xml字符串
  4. Android 号码, 来电归属地 Jni 使用C++对二进制文件查询(一) 理论篇
  5. 初接触设计模式--简单工厂(二)
  6. 专访死马:为什么说Egg.js是企业级Node框架
  7. zookeeper集群
  8. 黄聪:WordPress动作钩子函数add_action()、do_action()源码解析
  9. 利用ClustrMaps | GoStats | 51la | Google Analytics统计和分析访问量
  10. c# ComboBox禁用鼠标滚轮