运行 使用 python 查询 stackexchange 数据
run query on stackexchange data using python
我正在尝试使用 python
.
获取 TOP n 个标签及其使用情况的列表
我可以在 stackexchange site 上 运行 这个查询,如下所示,
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.py
、 py-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.Whosebug)
#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
我正在尝试使用 python
.
我可以在 stackexchange site 上 运行 这个查询,如下所示,
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.py
、 py-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.Whosebug)
#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