Python redmine:维基页面文本

时间:2014-03-04 07:57:47

标签: python python-3.x redmine

我使用python-redmine并希望获取维基页面文本,但是获取错误 - 属性不存在(但文本存在),这是我的代码:

from redmine import Redmine

redmine = Redmine('http://redmine.example.com', username='user', password='1234')
projects = redmine.project.all()

for project in projects:
    print('Project: '+project.name)
    try:
        for page in project.wiki_pages:
            try:
                print('Title: '+page.title)
            except:
                print('Title: none')

            try:
                print('Content: '+page.text)
            except:
                print('Content: none')
            print('\n===========================\n')
    except:
        print('None')

如何从维基页面获取文字?帮帮我吧!

pS:Python 3,由pip安装的python-redmine

2 个答案:

答案 0 :(得分:1)

您无法以这种方式获取维基页面文本,因为project.wiki_pages只返回项目可用的所有维基页面的列表,其中包含一些其他详细信息。要获取维基页面的文本,作者和其他信息,您必须为每个维基页面单独调用:

from redmine import Redmine

redmine = Redmine('http://redmine.example.com', username='user', password='1234')
projects = redmine.project.all()

for project in projects:
    print('Project: ' + project.name)

    for wiki_page in project.wiki_pages:
        wiki_page_details = redmine.wiki_page.get(wiki_page.title, project_id=project.id)

        print('Title: ' + wiki_page_details.title)
        print('Content: ' + wiki_page_details.text)
        print('\n===========================\n')

这不是很有效,但是Python Redmine只是Redmine REST API的一个接口,Redmine没有提供在一次调用中获取有关项目wiki页面的所有信息的方法,因此对每个wiki页面单独调用是唯一的出路。

答案 1 :(得分:0)

Rails将属性包装到方法中,因此很难说它在哪里使用属性只是一种方法。

Here您可以看到wiki_page有一个内容,here您可以看到text的方法定义(属性text属于内容!)。

我没有与python-redmine合作的经验,但我可以假设您需要致电page.content.text而不是page.text。或者以其他方式获取page.content