将多个参数限制为特定的字符串集

  • 本文关键字:字符串 参数 python
  • 更新时间 :
  • 英文 :


我想将多个参数限制为不同的字符串集。根据您的建议,为了使我的问题更清楚,这是我的代码,旨在成为API的包装器:

import requests
class Judikatur():
def __init__(self,
category: str,
published="Undefined",
entscheidungstexte=True,
rechtssaetze=True,
VfghRequestEntscheidungsart="Undefined",
VwghRequestEntscheidungsart="Undefined",
BvwgRequestEntscheidungsart="Undefined",
LvwgRequestEntscheidungsart="Undefined",
GbkRequestEntscheidungsart="Undefined",
GbkKommission="Undefined",
GbkSenat="Undefined",
GbkDiskriminierungsgrund="Undefined",
DskRequestEntscheidungsart="Undefined",
DskBehoerde="Undefined",
PvakBehoerde="Undefined",
LvwgBundesland="Undefined"):

然后检查所提供的字符串是否被API接受。

if category not in ["Justiz", "Vfgh", "Vwgh", "Bvwg", "Lvwg", "Gbk", "Dsk", "Dok", "Pvak"]:
raise ValueError('Please provide a valid category. Valid categories are:n
"Justiz" for "Gerichtsentscheidungen";n
"Vfgh" for "Entscheidungen des Verfassungsgerichtshofs";n
"Vwgh" for "Entscheidungen des Verwaltungsgerichtshofs";n
"Bvwg" for "Entscheidungen des Bundesverwaltungsgerichts";n
"Lvwg" for "Entscheidungen der Landesverwaltungsgerichte";n
"Gbk" for "Entscheidungen der Gleichbehandlungskommission";n
"Dsk" for "Entscheidungen der Datenschutzbehörde";n
"Dok" for "Entscheidungen der Disziplinarkommission";n
"Pvak" for "Personalvertretungsaufsichtsbehörde".')
if published not in ["Undefined", "EinerWoche", "ZweiWochen", "EinemMonat", "DreiMonaten", "SechsMonaten", "EinemJahr"]:
raise ValueError(
'Please provide a valid time since publication. The API accepts "Undefined", "EinerWoche", "ZweiWochen", "EinemMonat", "DreiMonaten", "SechsMonaten" or "EinemJahr".')
if VfghRequestEntscheidungsart not in ["Undefined", "Beschluss", "Erkenntnis", "Vergleich"]:
raise ValueError(
'Please provide a valid argument for "VfghRequestEntscheidungsart". The API accepts "Undefined", "Beschluss", "Erkenntnis" or "Vergleich".')
if VwghRequestEntscheidungsart not in ["Undefined", "Beschluss", "Erkenntnis", "BeschlussVS", "ErkenntnisVS"]:
raise ValueError(
'Please provide a valid argument for "VwghRequestEntscheidungsart". The API accepts "Undefined", "Beschluss", "Erkenntnis", "BeschlussVS" or "ErkenntnisVS".')
if BvwgRequestEntscheidungsart not in ["Undefined", "Beschluss", "Erkenntnis"]:
raise ValueError(
'Please provide a valid argument for "BvwgRequestEntscheidungsart". The API accepts "Undefined", "Beschluss" or "Erkenntnis".')
if LvwgRequestEntscheidungsart not in ["Undefined", "Beschluss", "Erkenntnis", "Bescheid"]:
raise ValueError(
'Please provide a valid argument for "LvwgRequestEntscheidungsart". The API accepts "Undefined", "Beschluss", "Erkenntnis" or "Bescheid".')
# etc.
pass

许多参数接受相似的字符串,但没有一组接受的字符串是相同的。

是否有可能减少上述检查所提供的字符串是否被API接受的代码?

枚举是定义一组固定的可能值的常用方法。您的标题要求字符串,问题显示数字,但枚举可以表示为两者之一。

正如你在文档中看到的,你可以指定你自己的数值

class Mood(Enum):
FUNKY = 1
HAPPY = 3

和类似的字符串名称。然后,member.valuemember.name允许您访问这些。

def func(x):
count = 0
for i in range(len(x)):
list = []
for _ in range(len(x)):
list.append(count+1)
count += 1
if not x[i][0] in list:
raise ValueError()
pass

list = [[1], [4], [7]]func(列表)

最新更新