Iōng-chiá thó-lūn:A-lú-mih/botsamples
一些pywikibot的問題
siu-kái不好意思,這方面問題台語表達不易,改用華語。
閣下的botsamples很實用,不過由於我對pywikibot比較沒那麼熟悉,所以有一些問題想請教您。
在第1個範例中,有這樣一行指令:
pop_amount = wd_item.claims['P1082'][0].getTarget().amount
請問:
- 目前,
wd_item
變數是一個dict,裡面有'aliases'、'labels'、'descriptions'、'claims'、'sitelinks'等5個dict,各自下面又有str或list。請問,各自的用途? - 任何地方相關的條目的'P1082'都是指「人口」嗎?該如何知道「密度」、「面積」之類的代碼呢?有總表嗎?
- 如您所提供的指令,由前段順利進入到
claims['P1082']
這個list後,該list長度為33,該如何知道是訪問第幾個Claim呢?比如說總人口「好像」是第0個Claim。 .getTarget().amount
這段是要參考pywikibot的API還是什麼?怎麼知道要用getTarget()
以及amount
呢?
以上問題,謝謝。--S205643 (thó-lūn) 2019-nî 11-goe̍h 16-ji̍t (Pài 6) 06:45 (UTC)
- 不好意思很多東西其實我都是一知半解的狀態,但還是盡量回答:
- wd_item所含的資料可以在wikidata上的頁面看到,例如Q30(美國):
- aliases是對應(使用英文介面時)最上面表格中看到的「Also known as」欄位,至於labels是對應「Label」、descriptions對應「Description」,個別都含各語言的多種名稱或敘述。
- claims是接下來Statements和Identifiers兩段那一大串資料。
- sitelinks是最下面那些各語言維基百科或其他各姊妹計畫中的對應頁面。
- P1082是人口property,也有對應頁面(在wikidata:Property:P1082)。wikidata:Wikidata:List_of_properties可能算是總表,可以搜尋。另外不直接有關但 這個介面 可以方便直接查詢資料。
- wikidata上的資料不是非常嚴謹(和維基百科一樣眾人可編的東西),資料順序常常不一致,所要的人口到底是列表裡第幾項,可能要針對個別項目或系列來看。從上面Q30的population欄位來看,可以看到其實最後一項才是最新人口(2017年)。人口資料常常會附帶一個point in time屬性(本身也是一個property),是該資料所屬時間。
- 我忘了為什麼會知道要用getTarget,應該是在這類範例上看到的(也許有些人看文件或源碼可以知道?)。那個method可以取得屬於Claim物件的target變數,就是該claim主要的數據(我不太了解為什麼要命名為「target」,總之Claim物件還存有其他資料)。如果直接輸出wd_item.claims['P1082'][0].getTarget()的結果,可以看到內容是
{ "amount": "+3929214", "lowerBound": null, "unit": "1", "upperBound": null }
- 當中的amount就是人口數。wikidata上一般數量類的屬性應該都是用amount。--A-lú-mih (thó-lūn) 2019-nî 11-goe̍h 16-ji̍t (Pài 6) 11:58 (UTC)
瞭解!感謝您的回覆。--Lamchuhan (thó-lūn) 2019-nî 11-goe̍h 21-ji̍t (Pài 4) 12:10 (UTC)
@A-lú-mih: 是否有什麼網站或資源能夠對pywikibot這個library更瞭解的?官方提供的doc有看沒有懂> <。--Lamchuhan (thó-lūn) 2019-nî 11-goe̍h 21-ji̍t (Pài 4) 14:15 (UTC)
- 剛看到這個網頁好像有一些如何讓bot編輯內容的教學。其實我找不太到利用library的完整教學,常常要直接看源碼才知道有哪些功能...。我之後可能會把之前用的某個建立頁面的script放到這裡以供參考。 --A-lú-mih (thó-lūn) 2019-nî 11-goe̍h 23-ji̍t (Pài 6) 09:01 (UTC)
好啊,謝謝。對了,如果我要由en wikipedia訪問wikidata,是連在這兩個網站上也都要有bot帳戶嗎?因為我想從wikidata先抓數據出來,然後再另外建立文章,但在抓數據的階段就不斷跑出下列訊息然後進不去:
Sleeping for 5.0 seconds
--Lamchuhan (thó-lūn) 2019-nî 11-goe̍h 30-ji̍t (Pài 6) 15:49 (UTC)
- 失禮,失禮,我無注意,無代誌矣。--Lamchuhan (thó-lūn) 2019-nî 12-goe̍h 1-ji̍t (Lé-pài) 01:31 (UTC)
- @A-lú-mih: 毋著呢,過一陣又閣出現頂面彼个問題!是按怎會按呢?敢是因為我無wikidata个bot權限?--Lamchuhan (thó-lūn) 2019-nî 12-goe̍h 1-ji̍t (Lé-pài) 04:20 (UTC)
- Góa thâu-seng ū chhì khòaⁿ-māi. Kan-ta 掠資料, bô su-iàu 口座 (só͘-í bot權限 sī bô éng-hióng chiah tio̍h). Pywikibot ū-ê kong-lêng 固定 ta̍k-kái cháu liáu lóng ē 等一个仔 chiah koh 繼續 (tiō chhut "Sleeping for x seconds" 訊息), ná-chhiūⁿ tú-tio̍h server 無閒/無反應 mā ē, 總是 góa bô 確定 sī siáⁿ-mi̍h 原因 lí ē tú tio̍h hit-ê 情形. --A-lú-mih (thó-lūn) 2019-nî 12-goe̍h 2-ji̍t (Pài 1) 09:55 (UTC)
- @A-lú-mih: 毋著呢,過一陣又閣出現頂面彼个問題!是按怎會按呢?敢是因為我無wikidata个bot權限?--Lamchuhan (thó-lūn) 2019-nî 12-goe̍h 1-ji̍t (Lé-pài) 04:20 (UTC)