【问题标题】:Parse wikitext myself with python - KeyError: 'revisions'自己用 python 解析 wikitext - KeyError: 'revisions'
【发布时间】:2021-12-15 02:53:23
【问题描述】:

我是 python 新手。我从here 获取了这段代码,但我得到了这个 KeyError: 我只想提一下它有效,所以我不知道发生了什么。

wikicode = page['revisions'][0]['*']
KeyError: 'revisions'

这是代码,感谢您的帮助!

def request_wiki_value(title=None, sentence=''):
if title is None:
    title = input("No title entered.\nPlease enter a title: ")
import requests
import mwparserfromhell
response = requests.get(
    'https://en.wikipedia.org/w/api.php',
    params={
        'action': 'query',
        'format': 'json',
        'titles': title,
        'prop': 'revisions',
        'rvprop': 'content',
    }
).json()
page = next(iter(response['query']['pages'].values()))
wikicode = page['revisions'][0]['*']
parsed_wikicode = mwparserfromhell.parse(wikicode)
# open("article.txt", "a", encoding='utf-8').write(parsed_wikicode.strip_code())
for ch in parsed_wikicode.strip_code():
    sentence = sentence + ch
    if ch == '\n':
        sentence = sentence.removesuffix(ch)
        open("article.txt", "a", encoding='utf-8').write(sentence)
        sentence = ''

【问题讨论】:

    标签: python text wikipedia keyerror data-extraction


    【解决方案1】:

    试试这个:

    import requests
    import mwparserfromhell
    def request_wiki_value(title=None, sentence=''):
      if title is None:
          title = input("No title entered.\nPlease enter a title: ")
    
      response = requests.get(
          'https://en.wikipedia.org/w/api.php',
          params={
              'action': 'query',
              'format': 'json',
              'titles': title,
              'prop': 'revisions',
              'rvprop': 'content',
          }
      ).json()
      page = next(iter(response['query']['pages'].values()))
      wikicode = page['revisions'][0]['*']
      parsed_wikicode = mwparserfromhell.parse(wikicode)
      # open("article.txt", "a", encoding='utf-8').write(parsed_wikicode.strip_code())
      for ch in parsed_wikicode.strip_code():
          sentence = sentence + ch
          if ch == '\n':
              sentence = sentence.removesuffix(ch)
              open("article.txt", "a", encoding='utf-8').write(sentence)
              sentence = ''
    

    问题是你没有为函数体添加缩进

    【讨论】:

      猜你喜欢
      • 2012-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多