Python Steem API介绍系列#1 - 账户篇 + 8 SBD非技术类问题有奖问答

in #cn7 years ago (edited)

在Account这个类中封装了各种账户相关的信息,下面介绍一下如何使用,同时也讨论一下一些重要的指标,比如声望值,投票力等,也许我对用户操作对这些值的影响的理解有偏差,希望各位大佬们多多指点。

本着回馈Steemit的出发点,在这个也设立一个有奖问答(已经结束):你觉得最好用的Steemit工具是什么?一等奖3 SBD,二等奖 2 SBD,三等奖 1 SBD。我会在周日晚公布结果。事先声明,这个问题答案是否最有价值是非常主观的,因此最终答案只是以我的个人感觉为准。希望大家能够Upvote和Resteem,让更多人看到,这样大家就能看到更多人推荐的steemit工具。但这丝毫不影响你的答案是否能得奖

谢谢@myfirst对问题一的解答和推荐的工具。

同时如果谁能回答出文中的问题,另外还有奖励喔(已经结束),每个问题1 SBD,同样,只奖励给第一个作者认为的正确答案。问题自己在文中找。。。

感谢@oflyhigh对文中两个问题的专业解答。

如何使用Account类

首先需要配置Python Steem的开发环境,然后只需要导入这个类就可以使用了:

from piston.account import Account
account = Account("yuxi")

至于这个类中有什么属性和方法,可以参考它的源代码

获取基本账户信息

接下来就可以查看各种相关的账户信息了,比如:

获取用户名:

print("Name: %s" % account.name)

打印用户的profile,比如:用户名,自我介绍等。

print("Profile: %s" % account.profile)

查看余额:

print("Balances: %s" % account.balances)

查看用户最近Upvote的帖子:

print("Account votes: %s" % account.get_account_votes())

这个指标里面有个weight,这个应该是和Steem Power有关的,值最大,投的票就越起作用,作者获得的奖励就越多。看了一下abit大神的投票,这个weight的值大的*吓*死*人*了*

{'weight': 3590608, 'time': '2017-07-28T07:58:42', 'rshares': '35476665753831', 'authorperm': 'deanliu/steem-oh-the-eagle-flies-high', 'percent': 5000}, 
{'weight': 3350775, 'time': '2017-07-28T08:20:09', 'rshares': '17942256119450', 'authorperm': 'lingfei/5r552t', 'percent': 2500},
 {'weight': 4038783, 'time': '2017-07-28T11:04:48', 'rshares': '49749730726633', 'authorperm': 'rea/a-queen-for-the-weekend-in-the-scottish-highlands-part-iii', 'percent': 7000},
 {'weight': 5215056, 'time': '2017-07-28T12:03:54', 'rshares': '45672133202030', 'authorperm': 'someone/london---travel-with-me-6----susan-6-by-susanlo', 'percent': 6500}

关于关注和粉丝

看看你的粉丝还有你都关注了谁

followers = account.get_followers()
following = account.get_following()
print("Followers: %s" % followers)
print("Following: %s" % following)

还可以利用Python的集合操作看看谁和你互粉了:

print("Dual following: %s" % list(set(followers).intersection(set(following))))

有奖问题一:在查看粉丝的时候,如果某人关注了你,又取消了关注,为什么他/她还会出现在粉丝列表里?这个问题如何解决?也就是说如何能够获得当前关注你的人列表?

我认为这是STEEM API的一个BUG。大神们怎么看?@abit @oflyhigh @myfirst

关于投票力

显示当前用户的投票力:

print("Voting power: %s" % account.voting_power())

系统显示出我的投票力是:

Voting power: 49.47

我接着做了一个实验,给一哥@myfirst这个帖子投了一票,结果我的投票力涨了:

Voting power: 62.32

一哥的这个帖子写的也不错,再投一票。查看下投票力,竟然降了降了降了,我直接蒙圈了。。。

Voting power: 61.19

再给O大神的这个帖子投了一票,投票力继续下降。

Voting power: 59.98

第二个有奖问题来了:为什么第一次给一哥投票时投票力会涨,随后会一直降?Steem用户在投票的时候需要注意什么?

关于声望值

print("Reputation: %s" % account.rep)

这个声望值和你的Steem Power没有关系,和你在Steem中的行为有关,比如:发帖质量,参与讨论等有关。

先说到这里,欢迎大家批评指正。

https://steemit.com 首发。非常感谢阅读,欢迎FOLLOW和Upvote @yuxi 激励我创作更多更好的内容。

Sort:  

第一个问题,不应该啊,明天测试一下
第二个问题,应该用获取的VP+(当前时间-最后一次投票时间)*恢复速度
VP恢复速度是每天20%,VP总量不超过100%

另外,互粉应该用交集吧?我看你用的并集
还有建议用steem 官方python库
Piston挺好的,但是后期xeroc可能很少维护了

谢谢你的解答。互粉那个复制粘贴错了,已经更正。回头看看官方python库。

两者几乎一样,官方的应该是直接拿xeroc的piston过来,并重构了一下
piston很稳定,但是未来可能不如官方的维护的勤

You got my vote and a resteem :)

回答一下你的这个问题, 为什么第一次投票时投票力会涨

http://www.steemdollar.com/dollar_per_vote.php?name=myfirst
最直接看这里, 当一个用户很长时间没有投票,会显示它最后一次投票剩下的能量, 实际上能量恢复了

谢谢解答,这个很长时间一般是多长呢?

You got my vote and a resteem :)

Coin Marketplace

STEEM 0.20
TRX 0.13
JST 0.030
BTC 67685.37
ETH 3498.92
USDT 1.00
SBD 2.71