2015-09-17 3 views
1

Вот фрагмент кода:Python: как использовать значение, хранящееся в переменной?

# Get details from the user. 
jira_url = str(raw_input("JIRA URL: "))   # https://jira.mydomain.com 
jira_prj = str(raw_input("JIRA Project: "))  # MYPROJ 
jira_uid = str(raw_input("JIRA ID: "))    # admin 
jira_pas = str(getpass.getpass("JIRA Password: ")) # [email protected]$wOrd! 

# JIRA stuff. 
jira = JIRA(server=jira_url, basic_auth=(jira_uid, jira_pas)) 
search_alert_issues = jira.search_issues("project = %s AND issuetype = Alert AND status = Submitted AND reporter in (anonymous)") % jira_prj 
search_alert_issues 

Цели:

  1. Подключение к JIRA сервер.
  2. Запустите search_alert_issues.

Expectation:

>>> jira = JIRA(server='https://jira.mydomain.com', basic_auth=('admin', '[email protected]$wOrd!')) 
>>> search_alert_issues = jira.search_issues("project = MYPROJ AND issuetype = Alert AND status = Submitted AND reporter in (anonymous)") 
>>> search_alert_issues 
[<JIRA Issue: key=u'MYPROJ-35460', id=u'129419'>, <JIRA Issue: key=u'MYPROJ-35459', id=u'129418'>, <JIRA Issue: key=u'MYPROJ-35458', id=u'129417'>, <JIRA Issue: key=u'MYPROJ-35457', id=u'129416'>, <JIRA Issue: key=u'MYPROJ-35456', id=u'129415'>, <JIRA Issue: key=u'MYPROJ-35455', id=u'129414'>, <JIRA Issue: key=u'MYPROJ-35454', id=u'129413'>, <JIRA Issue: key=u'MYPROJ-35453', id=u'129412'>, <JIRA Issue:  key=u'MYPROJ-35452', id=u'129411'>, <JIRA Issue: key=u'MYPROJ-35451', id=u'129410'>] 
>>> 

Реальность:

Traceback (most recent call last): 
    File "./ajat.py", line 82, in <module> 
search_alert_issues = jira.search_issues("project = %s AND issuetype = Alert AND status = Submitted AND  reporter in (anonymous)") % jira_prj 
    File "/usr/lib/python2.7/site-packages/jira/client.py", line 1587, in search_issues 
    resource = self._get_json('search', params=search_params) 
    File "/usr/lib/python2.7/site-packages/jira/client.py", line 2033, in _get_json 
    r = self._session.get(url, params=params) 
    File "/usr/lib/python2.7/site-packages/jira/resilientsession.py", line 78, in get 
    return self.__verb('GET', url, **kwargs) 
    File "/usr/lib/python2.7/site-packages/jira/resilientsession.py", line 74, in __verb 
    raise_on_error(r, verb=verb, **kwargs) 
    File "/usr/lib/python2.7/site-packages/jira/utils.py", line 120, in raise_on_error 
    r.status_code, error, r.url, request=request, response=r, **kwargs) 
jira.utils.JIRAError: JiraError HTTP 400 
    text: Error in the JQL Query: The character '%' is a reserved JQL character. You must enclose it in a  string or use the escape '\u0025' instead. (line 1, character 11) 

Вопросы:

  1. search_alert_issues должны быть в состоянии использовать значение, хранящееся в jira_prj переменной, не так ли?
  2. Но почему он не работает? Все переменные jira_ * показывают свои значения, когда я делал для них простую команду печати.
  3. Как я буду использовать значение, хранящееся в jira_prj?

ответ

2

В

search_alert_issues = jira.search_issues("project = %s AND issuetype = Alert AND status = Submitted AND reporter in (anonymous)") % jira_prj 

% jira_prj должны прийти до того, как скобка закрывается -

search_alert_issues = jira.search_issues("project = %s AND issuetype = Alert AND status = Submitted AND reporter in (anonymous)" % jira_prj) 

Прямо сейчас, вы отправляете project = %s AND issuetype = Alert AND status = Submitted AND reporter in (anonymous) на сервер, а затем форматирование результата со значением в jira_prj. Когда сервер Jira видит%, он жалуется.

+0

Спасибо так много за помощь! Я очень ценю это! Теперь работа хорошая. Небольшая ошибка может испортить весь сценарий. – sedawkgrep

+0

Добро пожаловать, рад, что я мог бы помочь. Если это ответит на ваш вопрос, можете ли вы пометить его как принятый? Благодарю. –

1

% jura_prj находится в неправильном положении

search_alert_issues = jira.search_issues("project = %s AND issuetype = Alert AND status = Submitted AND reporter in (anonymous)" % jira_prj) 
+0

Привет! Спасибо за помощь! :) – sedawkgrep

Смежные вопросы