我的Python心路历程 第十二期 (12.10 基金实战可视化之根据基金代码在线获取净值并保存在js文件中)

背景

今日我的Python心路历程是 基金实战可视化之根据基金代码在线获取净值并保存在js文件中)

分析

难点在于:

  1. 编码格式 encoding=‘utf-8’
  2. 解析

方案

核心代码如下:

# 根据基金代码在线获取净值,并保存在js文件中
def getWorth(fscode):
    content = requests.get(getUrl(fscode))
    jsContent = execjs.compile(content.text)

    # 获取绝对路径,funddata为当前文件夹
    curpath = os.path.join(os.path.dirname(__file__), 'funddata')
    fileName = fscode + 'content.js'
    file_object_path = os.path.join(curpath, fileName)
    # 保存为js文件
    f = open(file_object_path, 'w', encoding='utf-8')
    f.write(content.text)
    f.close()

    # 基金名称及代码
    name = jsContent.eval('fS_name')
    code = jsContent.eval('fS_code')

    # 收益率 应用时需要加百分比
    # 近一年收益率
    syl_1n = jsContent.eval('syl_1n')
    # 近6月收益率
    syl_6y = jsContent.eval('syl_6y')
    # 近三月收益率
    syl_3y = jsContent.eval('syl_3y')
    # 近一月收益率
    syl_1y = jsContent.eval('syl_1y')

    # 单位净值走势(及时的交易价值参考)
    netWorthTrend = jsContent.eval('Data_netWorthTrend')
    # 累计净值走势=单位净值+累计分红
    ACWorthTrend = jsContent.eval('Data_ACWorthTrend')

    # 现任基金经理
    currentFundManager = jsContent.eval('Data_currentFundManager')

    netWorth = []
    ACWorth = []

    for dayWorth in netWorthTrend[::-1]:
        netWorth.append(dayWorth['y'])

    for dayACWorth in ACWorthTrend[::-1]:
        ACWorth.append(dayACWorth[1])
    print(name, code)
    return netWorth, ACWorth

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值