大西洋暖流

一切都在不完美中前行


  • 首页

  • 关于

  • 标签

  • 归档

  • 搜索

2019年国庆节

发表于 2019-10-06 | 分类于 扯淡 | 阅读次数:
字数统计: 453 | 阅读时长 ≈ 2

(Photo by Kyle Hinkson on Unsplash)

国庆这几天没有出门,基本上都待在家里写代码和调程序了。答应了客户节后交货,花了好几天时间,反复在Docker里面做Airflow的测试,这两项以前都没有玩过,学习它的用法和测试,花了很多时间。

家人们经常不理解,为什么每天要花这么多时间在电脑面前?是不是效率太低了?

还真不是效率低,主要原因是软件开发这个职业,细节内容太多,一不小心很容易出错,碰到棘手的Bug,可能卡你半天,查原因和解决问题都非常耗费时间。

这几天调试下来,Docker的用法基本搞熟了,非常有收获。相比虚拟机,Docker确实太轻便了,拉取镜像制作容器,几分钟内就组装出来一个开发环境,简直发现了一片新大陆。

Airflow的DAG在Python3环境也跑通了,顺利迁移到了Python3环境。Python3读取CSV文件和Python2有很大差别,在CSV文件处理上也踩了好几个坑,收获了宝贵的经验,以后遇到这些都是小Case了。

今年一直专注在Python语言上做”单点突破”,虽然还没有达成我的目标,不过收获甚多,以前很多解决不了的问题现在都能解决了,自信心就这样一点点地建立起来;但确实还存在很多欠缺,比如说,我从来没有完整地做过一个Web开发项目,对于WSGI和Nginx的理解,看了很多例子,敲了很多程序,就是无法理解透彻,这些理解不透彻的地方,就是接下来需要努力的方向和目标吧。

Airflow中PythonOperator参数传递方法

发表于 2019-09-20 | 分类于 编程 | 阅读次数:
字数统计: 595 | 阅读时长 ≈ 3

(Photo by Iker Urteaga on Unsplash)

工作项目需要,最近在研究Airflow,Apache基金会下的一款任务流管理工具,基于Python而生,官网链接在此。这几天弄清楚了PythonOperator中不同Task之间如何传递参数,目前主要找到了两种方法。

第一种方法是使用Variable.set和Variable.get方法;第二种方法使用Xcoms。

阅读全文 »

解决Tushare new_stocks接口报错

发表于 2019-09-09 | 分类于 编程 | 阅读次数:
字数统计: 450 | 阅读时长 ≈ 2

(Photo by Eduardo Flores on Unsplash)

前几天在Python3里面调用Tushare的new_stocks接口,一直遇到这个报错”Length mismatch: Expected axis has 13 elements, new values have 12 elements”。

1
2
3
4
5
# -*- coding: utf-8 -*-
import tushare as ts
df = ts.new_stocks()
print("df:\n",df.head(3))

奇怪的是,这段代码在Python2里能够正常运行,不报错。

开始了定位Bug的奇妙之旅,首先发现错误是从Tushare包reference.py模块里_newstocks函数报出来的;根据报错信息关键字axis,推测出错行数应该在447-452之间。

最开始怀疑是两个版本获取的数据源有差异,将加上了

标签的sarr变量值分别在Python2和PYthon3环境下打印出来,使用Beyond Compare对比,结果发现没有任何差别。

阅读全文 »

一个Python递归问题

发表于 2019-08-11 | 分类于 编程 | 阅读次数:
字数统计: 1,523 | 阅读时长 ≈ 6

(Photo by Karine Zenda on Unsplash)

上篇Python实现股票黑名单使用双层循环将巨潮网里司法冻结的股票记录爬取下来之后,想着使用递归来实现这个处理,结果发现踩到一个大坑,递归函数处理完列表后,返回结果一直是None,这一篇记录一下具体的解决办法。

原问题经过简化后,其实就是这样一个函数,前面N次执行给列表赋值,最后一次将列表返回,返回之前打印列表,显示其内容有值,返回后结果却一直为None。

将问题简化后的F1函数如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
def F1(i):
if i == 5:
print("L1:", L1)
return L1
else:
L1.append(i)
i = i + 1
F1(i)
if __name__ == '__main__':
L1 = []
L1 = F1(1)
print("Main L1:", L1)

函数F1执行结果:

1
2
('L1:', [1, 2, 3, 4])
('Main L1:', None)

print语句显示列表L1有值,return之后的结果为什么一直None呢?最开始以为是没有给列表L1添加global关键字的原因。

阅读全文 »

Python实现股票黑名单

发表于 2019-08-10 | 分类于 投资 , 编程 | 阅读次数:
字数统计: 832 | 阅读时长 ≈ 4

(Photo by rawpixel.com on Unsplash)

7月25日晚上看招财大牛猫的财经夜报,他提到过说“上市公司大股东,凡是股份有被司法冻结过,表明财务状况非常糟糕,建议投资者不要去碰”。

里面还特意提到可以去巨潮网查询“股份被司法冻结”的信息,当时看完就在想,这不就是我们Pythoner擅长干的事情吗。

阅读全文 »
1…567…15
大西洋暖流

大西洋暖流

74 日志
7 分类
151 标签
常用链接
  • 廖雪峰
  • 阮一峰
  • 王垠
  • 酷壳
  • Python之禅
  • Python入坑指南
  • Echo李金
  • Flask资源
  • Python面试题
  • HelloGitHub
© 2016 — 2022 大西洋暖流 | Site words total count: 95.6k

粤公网安备 44030602003362号