2019-03-18 使用Request POST获取CNABS网站上JSON格式的表格数据,并解析出来用pymssql写到SQL Server中
import requests
import pymssql url = 'https://v1.cn-abs.com/ajax/ChartMarketHandler.ashx'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'
} # 每个交易场所每一年的发行金额
def get_marketInventory():
FromData = {
'type': 'marketInventory'
}
rep = requests.post(url, data=FromData).json()
for i in rep:
# print(i['SeriesName'],i['Points'])
for j in i['Points']:
result = {
'交易场所': i['SeriesName'],
'发行年份': j['X'],
'发行金额': j['Y']
}
yield result # 各个资产类型每一年的发行金额
def get_marketTotal():
FromData = {
'type': 'marketTotal'
}
rep = requests.post(url, data=FromData).json()
for i in rep:
# print(i['SeriesName'],i['Points'])
result = {
'资产类型': i['SeriesName'],
'发行金额': "" + str(i['Points'][0]['Y'][0]).replace("[", "'").replace("]", "'"),
'存量金额': "" + str(i['Points'][1]['Y'][0]).replace("[", "'").replace("]", "'")
}
yield result def sql_marketInventory():
result = get_marketInventory()
for res in result:
MarketPlace = res['交易场所']
IssueYear = res['发行年份']
IssueAmount = res['发行金额']
sqlText = "insert into [InvestSuite].[dbo].[MarketInventory] (MarketPlace,IssueYear,IssueAmount) " \
"values(N'%s','%s','%s')"%(MarketPlace,IssueYear,IssueAmount)
cur.execute(sqlText)
conn.commit()
# 如果update/delete/insert记得要conn.commit()
# cur.close()
# conn.close()
# sqlText = 'SELECT * FROM [InvestSuite].[dbo].[MarketInventory] '
# cur.execute(sqlText)
# print(cur.fetchall()) def sql_marketTotal():
result = get_marketTotal()
for res in result:
AssetType=res['资产类型']
CurrentIssueAmount=res['发行金额']
TotalIssueAmount=res['存量金额']
sqlText = "insert into [InvestSuite].[dbo].[MarketTotal] (AssetType,CurrentIssueAmount,TotalIssueAmount) " \
"values(N'%s','%s','%s')" % (AssetType,CurrentIssueAmount,TotalIssueAmount)
cur.execute(sqlText)
conn.commit() # 清空两张表的所有数据
def clean():
sql_text='delete from [InvestSuite].[dbo].[MarketTotal]'
cur.execute(sql_text)
conn.commit() sql_text = 'delete from [InvestSuite].[dbo].[MarketInventory]'
cur.execute(sql_text)
conn.commit() if __name__ == '__main__':
conn = pymssql.connect(host='', user='', password='',
database='', charset='utf8')
cur = conn.cursor()
if not cur:
raise Exception('数据库连接失败!')
# parse_marketInventory()
# parse_marketTotal()
clean()
get_marketInventory()
sql_marketInventory()
get_marketTotal()
sql_marketTotal()
cur.close()
conn.close()
2019-03-18 使用Request POST获取CNABS网站上JSON格式的表格数据,并解析出来用pymssql写到SQL Server中的更多相关文章
- 2019-03-15 使用Request POST获取CNABS网站上JSON格式的表格数据,并解析出来用xlwt写到Excel中
import requests import xlwt url = 'https://v1.cn-abs.com/ajax/ChartMarketHandler.ashx' headers={ 'Us ...
- SQL Server中如何获取当前年,月,日,时,分,秒
分类: SQL Server select GETDATE() as '当前日期',DateName(year,GetDate()) as '年',DateName(month,GetDate()) ...
- HttpClient获取返回类型为JSON或XML的数据
Java_HttpClient获取返回类型为JSON或XML的数据 原创 2017年04月06日 17:38:29 706 HttpClient 获取返回类型为JSON或XML的数据 使用httpco ...
- 在SQL SERVER中获取表中的第二条数据
在SQL SERVER中获取表中的第二条数据, 思路:先根据时间逆排序取出前2条数据作为一个临时表,再按顺时排序在临时表中取出第一条数据 sql语句如下: select top 1 * from(se ...
- SQL Server中是否可以准确获取最后一次索引重建的时间?
在SQL Server中,我们能否找到索引的创建时间?最后一次索引重建(Index Rebuild)的时间? 最后一次索引重组(INDEX REORGANIZE)的时间呢? 答案是我们无法准确的找到 ...
- struts2使用jsp和<s:property>标签获取json格式的返回数据
struts2使用jsp和<s:property>标签获取json格式的返回数据 1.struts2的action中 return "success"; 2.指向的返回 ...
- (4.17)sql server中的uuid获取与使用
sql server中的uuid 建表: 1.自增长 studentno int primary key identity(1,1)——bigint也是可以的 2.创建uuidcustomerid ...
- Spring MVC 后端获取前端提交的json格式字符串并直接转换成control方法对应的参数对象
场景: 在web应用开发中,spring mvc凭借出现的性能和良好的可扩展性,导致使用日渐增多,成为事实标准,在日常的开发过程中,有一个很常见的场景:即前端通过ajax提交方式,提交参数为一个jso ...
- C# 如何获取SQL Server 中指定数据表的所有字段名和字段类型
如何获取指定数据表的所有字段名和字段类型.SqlConnection.GetSchema方法有2个重载形式,获取指定数据表的所有字段名和字段类型的秘密就在GetSchema (String, Stri ...
随机推荐
- 轻量级Java EE开发框架设计系统应用架构
首先来说一下Java EE 概述 其中常说的三大框架即是:ssh Spring:功能强大的组件粘合济,能够将你的所有的java功能模块用配置文件的方式组合起来(还让你感觉不到spring的存在)成为一 ...
- Android学习总结(3)——Handler深入详解
什么是Handler Handler是Android消息机制的上层接口,它为我们封装了许多底层的细节,让我们能够很方便的使用底层的消息机制.Handler的最常见应用场景之一便是通过Handler在子 ...
- spring容器启动过程理解
一.一切从手动启动IoC容器开始 ClassPathResource resource = new ClassPathResource("bean.xml"); DefaultLi ...
- POJ 3613
可以利用DP的思想来做,不过是在DP时加上了矩阵乘法的思想而已,但乘法不是真的乘法,而是mp[a][i]+mp[i][b]<mp[a][b]则更新,其实更像FLOYD. 但这是符合乘法的格式的. ...
- Advanced Fruits HDU杭电1503【LCS的保存】
Problem Description The company "21st Century Fruits" has specialized in creating new sort ...
- [UVALive 6661 Equal Sum Sets] (dfs 或 dp)
题意: 求从不超过 N 的正整数其中选取 K 个不同的数字,组成和为 S 的方法数. 1 <= N <= 20 1 <= K<= 10 1 <= S <= 15 ...
- oracle经常使用函数(2)
1.TRIM([ { { LEADING | TRAILING | BOTH }[ trim_character ]| trim_character} FROM ]trim_source) 函数 參数 ...
- codeforces 490 D Chocolate
题意:给出a1*b1和a2*b2两块巧克力,每次可以将这四个数中的随意一个数乘以1/2或者2/3,前提是要可以被2或者3整除,要求最小的次数让a1*b1=a2*b2,并求出这四个数最后的大小. 做法: ...
- centos cmake 升级
本以为升级cmake很简单 下载了最新的(3.15),./configure 没问题 make的时候,提示 openssl.c: undefined symbol openssl, openssl-d ...
- Flask-Restful
定义Restful的视图 安装:pip install flask-restful 如果使用Flask-restful,那么定义视图函数的时候,就要继承flask_restful.Resourse类, ...