用于strava api的python客户端,重点是流畅的数据处理

stravaio的Python项目详细描述


斯特拉瓦约

用于strava api的python客户端,重点是流畅的数据处理

PyPI versionBuild Status

示例

在Strava海报中建立自己的Jupyter notebook

安装

pipenv install stravaio

pip install stravaio

最新的开发版本可以安装为:

pipenv install git+https://github.com/sladkovm/stravaio.git#egg=stravaio

使用前

您需要具有活动级权限的STRAVA_ACCESS_TOKEN才能使用此包。

获取令牌的最简单方法是使用stravaio库本身:

fromstravaioimportstrava_oauth2strava_oauth2(client_id=STRAVA_CLIENT_ID,client_secret=STRAVA_CLIENT_SECRET)

您将被重定向到默认系统浏览器,其中必须完成授权流。在后台,本地web服务器将运行并监听strava返回的数据。

如果将STRAVA_CLIENT_IDSTRAVA_CLIENT_SECRET设置为环境变量,则它们都是可选参数。

另一种方法是前往strava-oauth库寻求帮助。在那里,您将找到一个指向公共web服务器的链接,可用于完成strava authorizatio流。

获取令牌时,将其存储为环境变量非常方便。否则它应该明确地传递给stravaio构造函数。

exportSTRAVA_ACCESS_TOKEN=<strava_access_token>

使用

fromstravaioimportStravaIO# If the token is stored as an environment varible it is not neccessary# to pass it as an input parametersclient=StravaIO(access_token=STRAVA_ACCESS_TOKEN)

运动员

# Get logged in athlete (e.g. the owner of the token)# Returns a stravaio.Athlete object that wraps the# [Strava DetailedAthlete](https://developers.strava.com/docs/reference/#api-models-DetailedAthlete)# with few added data-handling methodsathlete=client.get_logged_in_athlete()# Dump athlete into a JSON friendly dict (e.g. all datetimes are converted into iso8601)athlete_dict=athlete.to_dict()# Store athlete infor as a JSON locally (~/.stravadata/athlete_<id>.json)athlete.store_locally()# Get locally stored athletes (returns a generator of dicts)local_athletes=client.local_athletes()

活动

# Returns a stravaio.Activity object that wraps the # [Strava DetailedActivity](https://developers.strava.com/docs/reference/#api-models-DetailedActivity)activity=client.get_activity_by_id(2033203247)# Dump activity into a JSON friendly dictactivity_dict=activity.to_dict()# Store activity locally (~/.stravadata/activities_<athlete_id>/activity_<id>.json)activity.store_locally()# Get list of athletes activities since a given date (after) given in a human friendly format.# Kudos to [Maya: Datetimes for Humans(TM)](https://github.com/kennethreitz/maya)# Returns a list of [Strava SummaryActivity](https://developers.strava.com/docs/reference/#api-models-SummaryActivity) objectslist_activities=client.get_logged_in_athlete_activities(after='last week')# Obvious use - store all activities locallyforainlist_activities:activity=client.get_activity_by_id(a.id)activity.store_locally()# List local activities (returns a generator of JSON friendly dicts)activities=client.local_activitis(athlete_id=1202065)

# Returns a stravaio.Streams object that wraps the # [Strava StreamSet](https://developers.strava.com/docs/reference/#api-models-StreamSet)streams=client.get_activity_streams(2033203247)# Access streams using the dot notationwatts=streams.watts# Dump streams into a JSON friendly dictstreams_dict=streams.to_dict()# Store streams locally (~/.stravadata/streams_<athlete_id>/streams_<id>.parquet) as a .parquet file, that can be loaded later using the# pandas.read_parquet()streams.store_locally()

贡献者

Aart Goossens

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java组在不同线程中记录消息   java Wicket挂载404错误页   Java:如何制作对象数组的副本?   类似Windows中的java日期时间选择器   java无法获取JTextField用户输入以搜索文本文件   安卓 Java:如何随机更改背景和字体颜色   Java定时器中的摆动变化延迟   java让Selenium暂停X秒   将响应传递到视图时发生java Nativescript错误   java刷新安卓列表视图的最佳方式是什么?   单java进程的多线程队列/工作线程体系结构   web服务Java NoSuchMethodException   java groupingBy和filter一步到位   java游标。getCount()给定错误   即使引用的文件位于项目根目录中,java PrintWrite仍会持续引发“未找到文件”异常