【发布时间】:2022-01-17 03:17:48
【问题描述】:
import requests
from datetime import datetime
gg = []
now = datetime.now()
current_time = now.strftime("%Y-%m-%dT%H:%M:%S")
url = ("https://sportsbook-sm-distribution-api.nsoft.com/api/v1/events?deliveryPlatformId=3&dataFormat=%7B%22default%22:%22object%22,%22events%22:%22array%22,%22outcomes%22:%22object%22%7D&language=%7B%22default%22:%22sr-Latn%22,%22events%22:%22sr-Latn%22,%22sport%22:%22sr-Latn%22,%22category%22:%22sr-Latn%22,%22tournament%22:%22sr-Latn%22,%22team%22:%22sr-Latn%22,%22market%22:%22sr-Latn%22%7D&timezone=Europe%2FBelgrade&company=%7B%7D&companyUuid=4dd61a16-9691-4277-9027-8cd05a647844&filter[sportId]=3&filter[from]={}&sort=categoryPosition,categoryName,tournamentPosition,tournamentName,startsAt&offerTemplate=WEB_OVERVIEW&shortProps=1").format(current_time)
response = requests.get(url)
matches = response.json()
print(matches) #This is my json document
我正在尝试从投注网站上获取赔率。我对 python 很陌生,我需要一些帮助。
某种“奇数id”存储在键“b”中。所以基本上对于这个json文件中的每一个匹配,如果匹配包含键“b”的值为2763,我想抓取键“g”的值并将其存储在我的列表“gg”中(键“g”的值很奇怪我想刮)。但是,如果匹配项不包含值为 2763 的键“b”,那么对于该匹配项,我只想将一次“1.00”附加到列表“gg”。
for match in matches:
mat = matches['data']['events']
for s in range(len(mat)):
o = mat[s]['o']
for element in o:
h = o[element]['h']
for x in h:
if h[x]['b'] == 2763:
gg.append(h[x]['g'])
使用此命令,我可以获取赔率,但如果匹配没有 'b':2763 (oddid),我不知道如何将“1.00”附加到 GG
【问题讨论】:
-
此数据中有什么匹配项?
-
[数据][事件]中有匹配项。赔率存储在 ['data']['events']['o']['h'] 中。在“h”中有一些 Id,在那个 id 中有一个带有值的奇数键“b”(在我的情况下是 2763)和带有我想抓取的值的奇数键“g”。谢谢!
标签: python json web-scraping python-requests