带有 atlassian-python 包的 Python 中的 f-string提出不好的要求

问题描述

我正在尝试为所有项目获取 JIRA 中的所有问题。一次拨打一个电话时,效果很好。尝试在 for 循环中运行它时,系统提示我 400 客户端错误

工作方式:

results = jira_instance.jql("project = FJA",limit = 100,fields=["issuetype","status","summary"])

行不通的方式:

projects = ["ADV","WS","FJA","FOIJ","QW","UOI"]

for key in projects:
  results = jira_instance.jql(f"project = {key})","summary"])

错误

Traceback (most recent call last):
  File "C:\jira-api-python\jira.py",line 24,in <module>
    results = jira_instance.jql("project = {key}","summary"])
  File "C:\.virtualenvs\jira-api-python-rouJrYa4\lib\site-packages\atlassian\jira.py",line 2271,in jql
    return self.get("rest/api/2/search",params=params)
  File "C:\.virtualenvs\jira-api-python-rouJrYa4\lib\site-packages\atlassian\rest_client.py",line 264,in get
    response = self.request(
  File "C:\.virtualenvs\jira-api-python-rouJrYa4\lib\site-packages\atlassian\rest_client.py",line 236,in request
    response.raise_for_status()
  File "C:\.virtualenvs\jira-api-python-rouJrYa4\lib\site-packages\requests\models.py",line 943,in raise_for_status
    raise HTTPError(http_error_msg,response=self)
requests.exceptions.HTTPError: 400 Client Error: Bad Request for url: https://stuff.atlassian.net/rest/api/2/search?startAt=0&maxResults=100&fields=issuetype%2Cstatus%2Csummary&jql=project+%3D+%7Bkey%7D

我的猜测是我没有正确使用 f 字符串。但是当我打印 {key} 的值时它是正确的。

任何指针将不胜感激。

感谢您抽出宝贵时间。

编辑:

添加了完整的回溯,只删除了我机器的路径并将 URL 更改为端点。以下是已编辑凭据和端点的完整文件。想法是为每个项目创建一个 csv。

完整代码

from atlassian import Jira
import pandas as pd
import time

jira_instance = Jira(
    url = "https://stuff.atlassian.net/",username = "user",password = "pass",)



projects = ["ADV","UOI"]
FIELDS_OF_INTEREST = ["key","fields.summary","fields.status.name"]
timestamp = time.strftime("%Y%m%d-%H%M%s")
file_ending = ".csv"

for key in projects:


    print(f"stuff = {key}")
    results = jira_instance.jql(f"project = {key})",limit = 1000,"summary"])

解决方法

我找到了非常简单的解决方案。

在这个片段中: results = jira_instance.jql(f"project = {key})",limit = 1000,fields=["issuetype","status","summary"])

) 之后的 {key} 不应该在那里。

感谢您的帮助

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...