【发布时间】:2020-06-06 05:28:42
【问题描述】:
我不太确定这是否可能,因为我无法找到任何确切的信息。我会尽力在下面解释我想做的事情。
所以我使用请求库从 API 中提取信息。一旦我有了这些数据,我就会使用正则表达式从 json 输出中查找特定信息的所有匹配项。
我的代码是:
for i in data['resources']:
if 'id' in i and 'name' in i:
b = i['name'], i['id']
k = str(b)
if re.findall("'Server-Ownership-\w+', \w+", k):
matchedOwners = re.findall("'Server-Ownership-\w+', \w+", k)[0]
j = str(matchedOwners)
print(j)
这段代码的输出给了我:
'Server-Ownership-A', 100
'Server-Ownership-B', 200
'Server-Ownership-C', 300
'Server-Ownership-D', 400
'Server-Ownership-E', 500
'Server-Ownership-F', 600
'Server-Ownership-G', 700
'Server-Ownership-H', 800
我想做的是以某种方式将每个服务器所有权行引用为自己的,以便我可以使用与它关联的末尾的 ID 来为每个服务器执行获取请求。我的问题是我无法确定调用任何这些数据的方法。我想也许我可以把它变成 json 并为“服务器所有权”部分创建一个“名称”字段,然后在最后为 ID 创建一个“id”字段。这是可能的还是有更好的方法来解决这个问题?
非常感谢任何帮助!
【问题讨论】:
-
为什么要使用正则表达式而不是直接访问字典键?
-
if i['name'].startswith('Server-Ownership-'): -
@barmar 这就是我在最初的获取请求中所做的。我的 for 循环开始的地方我引用了 id 键和 name 键。我需要正则表达式,因为我返回了很多不是我需要的数据。因此,通过使用正则表达式,我只能显示我需要的“服务器所有权”。另外,id 键和 name 键没有放在一起,所以我需要将它们并排排列以供相应的服务器使用