使用 Python 对 StackExchange 数据运行查询



我正在尝试使用 python 获取 TOP n 标签及其迄今为止的用法的列表。

我可以在堆栈交换站点上运行此查询,如下所示,

SELECT *
FROM Tags
WHERE ExcerptPostId is not NULL
order by Count
Desc

这给了我如下的结果,

Id  TagName Count   ExcerptPostId   WikiPostId
3   javascript  1538133 3624960 3607052
17  java    1360163 3624966 3607018
9   c#  1169923 3624962 3607007
5   php 1157178 3624936 3607050
1386    android 1063197 3625001 3607484
820 jquery  890140  3625262 3607053
16  python  877784  3624965 3607014
2   html    717700  3673183 3673182
10  c++ 549953  3624963 3606997
58338   ios 545753  4536664 4536663
 .......
 ....... and so on.

但是,有没有办法使用 python 获取完全相同的数据?可能使用 API 运行相同的查询,

我看了看stack.pypy-stackexchange,却找不到文件。有什么想法吗?

知道了。

看起来有一种tags()方法可用。虽然看代码,但我无法理解属性。但是,我能够使用 dir 推断出tags()方法的可用属性。

>>> dir(tag)
['__class__', '__delattr__', '__dict__', '__doc__', '__format__',   
'__getattribute__', '__hash__', '__init__', '__module__', '__new__', 
'__reduce__', '__reduce_ex__', '__repr__', '__setattr__',_sizeof__',
 '__str__', '__subclasshook__', '__weakref__', '_extend', '_up',
  'count', 'fetch', 'id', 'json', 'json_ob', 'name', 'partial', 'site',
 'synonyms', 'top_answerers', 'top_askers', 'transfer', 'wiki']
>>> 

之后,只需选择合适的属性即可。
这是代码。

import stackexchange
so = stackexchange.Site(stackexchange.StackOverflow)
#Print top 10 tags and their count
for  idx, tag in enumerate(so.tags()):
    if idx >= 10:
        break
    print("{},{}".format(tag.name , tag.count))

结果

>>> 
javascript,1540896
java,1361964
c#,1171336
php,1158685
android,1064757
jquery,891031
python,880103
html,718747
c++,550622
ios,546498

相关内容

  • 没有找到相关文章

最新更新