import requests
import pprint
import csv
__init__()=filenames
file = open('data.csv',mode='a',encoding='utf-8',newline='')
csv_write=csv.DictWriter(file,filenames=['股票代码','股票名称','当前价格','涨跌额','涨跌幅','年初至今','成交量','成交额','换手率','市盈率(TTM)','股息率','市值'])
csv_write.writeheader()#写入一次表头数据
# 1确定url地址(链接地址)
url='https://xueqiu.com/service/v5/stock/screener/quote/list?page=1&size=30&order=desc&order_by=amount&exchange=CN&market=CN&type=sha&_=1623936565734'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0'}
# 2发送网络请求
rq=requests.get(url=url,headers=headers)
json_data = rq.json()
# pprint.pprint(json_data)
# 3数据解析(筛选数据)
data_list = json_data['data']['list']
for data in data_list:
# print(data)
data1 = data['symbol']
data2 = data['name']
data3 = data['current']
data4 = data['chg']
if data4:
if float(data4)>0:
data4='+'+str(data4)
else:
data4='-'+str(data4)
data5 = str(data['percent'])+'%'
data6 = str(data['current_year_percent'])+'%'
data7 = str(data['volume'])+'亿'
data8 = str(data['amount'])+'亿'
data9 = str(data['turnover_rate'])+'%'
data10 =data['pe_ttm']
data11 = data['dividend_yield']
if data11:
data11=str(data['dividend_yield'])+'%'
else:
data11= None
data12= str(data['market_capital'])+'亿'
print(data1,data2,data3,data4,data5,data6,data7,data8,data9,data10,data11,data12)
# 4数据保存
data_dict={'股票代码':data1,'股票名称':data2,'当前价格':data3,'涨跌额':data4,'涨跌幅':data5,'年初至今':data6,'成交量':data7,'成交额':data8,'换手率':data9,'市盈率(TTM)':data10,'股息率':data11,'市值':data12}
csv_write.writerow(data_dict)
D:\Python3.8.2\python.exe D:/PyCharm/pythonProject/股票01.py
Traceback (most recent call last):
File "D:/PyCharm/pythonProject/股票01.py", line 6, in <module>
csv_write=csv.DictWriter(file,filenames=['股票代码','股票名称','当前价格','涨跌额','涨跌幅','年初至今','成交量','成交额','换手率','市盈率(TTM)','股息率','市值'])
TypeError: __init__() missing 1 required positional argument: 'fieldnames'
Process finished with exit code 1