[020量化交易] python读取股票信息并写入数据库2

import json
import tushare as ts
import time
import sqlite3
import pandas as pd

# 初始化pro接口
pro = ts.pro_api('')


# # Python 字典类型转换为 JSON 对象
# data1 = {
#     'no': 1,
#     'name': 'C君莫笑',
#     'url': 'https://blog.csdn.net/qq_34623621/article/details/124109182'
# }
#
# json_str = json.dumps(data1)  # json.dumps(): 对数据进行编码。
# print("Python 原始数据:", repr(data1))  # 返回一个对象的 string 格式。
# print("JSON 对象:", json_str)  # json.loads(): 对数据进行解码。
#
# # 将 JSON 对象转换为 Python 字典
# data2 = json.loads(json_str)  # json.loads(): 对数据进行解码。
# print("data2['name']: ", data2['name'])
# print("data2['url']: ", data2['url'])
#
# # # 写入 JSON 数据
# # with open('data.json', 'w') as f:
# #     json.dump(data1, f)
#
# print('Read json file.')
# # 读取数据
# with open('stock_pool.json', 'r', encoding='UTF-8') as f:
#     data = json.load(f)
#     # print(data)
#     print(data['股票']['平安银行'])
#     print(data['指数']['上证综指'])

def json_to_str():
    # load: 将文件中的字符串变换为数据类型
    with open("stock_pool.json", 'r', encoding='UTF-8') as load_f:
        stock_index = json.load(load_f)
    print(stock_index)  # <class 'dict'>
    # {'指数': {'上证综指': '000001.SH', ..... '上证180': '000010.SH'}, '股票': {'平安银行': '000001.SZ', '万科A': '000002.SZ', .....}}
    print(type(stock_index))  # <class 'dict'>

    print(stock_index['指数']['上证综指'])  # sh.000001
    print(stock_index['股票']['平安银行'])  # 000001.SZ
    return stock_index


stock_code = json_to_str()
num = 0
print("打印股票代码code:")
for code in stock_code['股票'].values():
    print("num:" + str(num), end=' ')
    print(code)
    num = num + 1

'''
num:4880 871857.BJ
num:4881 871970.BJ
num:4882 871981.BJ
num:4883 872925.BJ
num:4884 873169.BJ
num:4885 873223.BJ
num:4886 689009.SH
'''

print('open data base.')
conn = sqlite3.connect('stock-data.db')
c = conn.cursor()

try:
    print("获取股票数据.")
    print(code)
    data = pro.daily(ts_code='000006.SZ', start_date='20190101', end_date='20190301')
    time.sleep(0.2)
    data.to_sql('STOCK000651', conn, index=False, if_exists='append')
    print("right code is %s" % code)
except:
    print("error code is %s" % code)


print("read sqlite data to show.")
sql_gldq = pd.read_sql_query("select * from 'STOCK000651';", conn)
print(sql_gldq)


在这里插入图片描述

import json
import tushare as ts
import time
import sqlite3
import pandas as pd

# 初始化pro接口
pro = ts.pro_api('9f61340e69c5695ac3fe99b33ea58ce9dc55fb235f10aacd781c37df')

print('open data base.')
conn = sqlite3.connect('stock-data.db')
c = conn.cursor()

# establish form  # 创建表
if True:
    try:
        c.execute('''CREATE TABLE SZ000006
           (ts_code           TEXT    NOT NULL,
           trade_date          TEXT    NOT NULL,
           open          REAL,
           high           REAL,
           low         REAL,
           close          REAL,
           pre_close         REAL,
           change         REAL,
           pct_chg         REAL,
           vol         REAL,
           amount         REAL);''')
        conn.commit()
    except:
        print("establish table error.")

try:
    # print("获取股票数据.")
    # print(code)
    data = pro.daily(ts_code='000006.SZ', start_date='20190101', end_date='20190301')
    time.sleep(0.2)
    # print(data)
    data.to_sql('SZ000006', conn, index=False, if_exists='append')
    # print("right code is %s" % code)
except:
    print("error code is .")

print("read sqlite data to show.")
sql_gldq = pd.read_sql_query("select * from 'SZ000006';", conn)
print(sql_gldq)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值