使用Python请求从网站API过滤json响应

使用Python请求从网站API过滤json响应,python,json,get,python-requests,Python,Json,Get,Python Requests,我需要使用他们的API查询博彩交易所网站。我可以使用以下代码获得Python请求的事件名称和ID列表: r15 = s.get('https://www.matchbook.com/edge/rest/events/?sport-ids=24735152712200&category-ids=10812641776701') data1 = r15.json() for event in data1['events']: print(event['name']) prin

我需要使用他们的API查询博彩交易所网站。我可以使用以下代码获得Python请求的事件名称和ID列表:

r15 = s.get('https://www.matchbook.com/edge/rest/events/?sport-ids=24735152712200&category-ids=10812641776701')
data1 = r15.json()
for event in data1['events']:
    print(event['name'])
    print(event['id'])
我现在知道了需要按类别id和运动id过滤的数字,但我不知道如何过滤json响应,只过滤跑步者的姓名。如何使用请求过滤json响应,使其只显示运行者的名称,而不显示整个json数据流

下面给出了类似请求的json响应示例:

<events-response>
<offset>0</offset>
<per-page>1</per-page>
<total>38</total>
<events>
<event>
<id>393986311580028</id>
<name>12:50 Gowran Park</name>
<sport-id>24735152712200</sport-id>
<start>2017-01-26T12:50:00Z</start>
<in-running-flag>false</in-running-flag>
<allow-live-betting>false</allow-live-betting>
<category-id>
<category-id>10812641776701</category-id>
<category-id>24735152712200</category-id>
<category-id>24735153536300</category-id>
<category-id>393798405520028</category-id>
</category-id>
<status>open</status>
<volume>938.65922</volume>
<markets>...</markets>
<meta-tags>
<meta-tag id="10812641776701">
<name>Ireland</name>
<type>COUNTRY</type>
<url-name>ireland</url-name>
</meta-tag>
<meta-tag id="24735152712200">
<name>Horse Racing</name>
<type>SPORT</type>
<url-name>horse-racing</url-name>
</meta-tag>
<meta-tag id="24735153536300">
<name>Gowran Park</name>
<type>LOCATION</type>
<url-name>gowran-park</url-name>
</meta-tag>
<meta-tag id="393798405520028">
<name>2017-01-26</name>
<type>DATE</type>
<url-name>2017-01-26</url-name>
</meta-tag>
</meta-tags>
</event>
</events>
</events-response>

0
1.
38
393986311580028
12:50戈兰公园
24735152712200
2017-01-26T12:50:00Z
假的

输出:


您可以解码json字符串,然后从结果dict中选择类别id。好的,我仍然有这个问题-我得到了如下xml响应:我想导航到标记“runners”。dict结构似乎不允许我这么做that@Davtho1983这是xml响应,而不是json。使用BeautifulSoup或lxml解析此响应,如果您有任何问题,请发布另一个问题并标记为
BeautifulSoup
。抱歉,我不清楚-我的意思是json响应的结构与xml相同,因为它嵌套相同。-它实际上看起来是这样的:b'{“offset”:0,“per page”:20,“total”:24,“events”:[{“id”:400898325470010,“name”:“17:00 Dundalk”,“sport id”:24735152712200,“start”:“2017-02-03T17:00:00.000Z”,“in running flag”:false,“允许现场投注”:false,“category id”:[10812641776701247351527122002474306490404040564069010],“status”:“open”,“volume”:6968.18741,“市场”:[{“事件id”:400898325470010,“id”:400898327610010,“名称”:“胜利”,“跑步者”:…@Davtho1983发布另一个问题,很难回答评论中的问题OK抱歉,我编辑了这个问题-希望通过更好地提问,答案将对更多人有用
import requests

r = requests.get('https://www.matchbook.com/edge/rest/events')
data = r.json()
for event in data['events']:
    print(event['category-id'])
[9, 291015400640036, 380069543210027, 380069652690027]
[110, 291907469820036, 357657110470027]
[10812641776701, 24735152712200, 24735152733701, 393122343520028]
[10812641776701, 24735152712200, 24735152733701, 393122343520028]
[10812638253700, 24735152712200, 24735152714301, 393122343520028]
[10812641776701, 24735152712200, 24735152733701, 393122343520028]
[10812638253700, 24735152712200, 24795683891101, 393122343520028]
[10812638253700, 24735152712200, 24735152714301, 393122343520028]
[10812638253700, 24735152712200, 24735153508400, 393122343520028]
[10812641776701, 24735152712200, 24735152733701, 393122343520028]
[10812638253700, 24735152712200, 24795683891101, 393122343520028]
[10812638253700, 24735152712200, 24735152714301, 393122343520028]
[10812638253700, 24735152712200, 24735153508400, 393122343520028]
[10812641776701, 24735152712200, 24735152733701, 393122343520028]
[10812638253700, 24735152712200, 24795683891101, 393122343520028]
[10812638253700, 24735152712200, 24735152714301, 393122343520028]
[10812638253700, 24735152712200, 24735153508400, 393122343520028]
[10812641776701, 24735152712200, 24735152733701, 393122343520028]
[6, 375895250670027, 392314597880056]
[10812638253700, 24735152712200, 24795683891101, 393122343520028]