【发布时间】:2021-02-09 04:38:50
【问题描述】:
我正在使用 API 来检索一些足球数据,我注意到当某种模式发生时,数据已损坏。
以下是正确数据格式的示例:
{
"id": 150,
"name": "bwin",
"odds": {
"data": [
{
"value": "15.50",
"handicap": null,
"total": null,
"label": "1",
"probability": "6.45%",
"dp3": "15.500",
"american": 1450,
"factional": null,
"winning": false,
"stop": false,
"bookmaker_event_id": null,
"last_update": {
"date": "2019-11-29 16:02:57.421588",
"timezone_type": 3,
"timezone": "UTC"
}
},
{
"value": "7.50",
"handicap": null,
"total": null,
"label": "X",
"probability": "13.33%",
"dp3": "7.500",
"american": 650,
"factional": null,
"winning": false,
"stop": false,
"bookmaker_event_id": null,
"last_update": {
"date": "2019-11-29 16:02:57.421630",
"timezone_type": 3,
"timezone": "UTC"
}
},
{
"value": "1.10",
"handicap": null,
"total": null,
"label": "2",
"probability": "90.91%",
"dp3": "1.100",
"american": -1000,
"factional": null,
"winning": true,
"stop": false,
"bookmaker_event_id": null,
"last_update": {
"date": "2019-11-29 16:02:57.421656",
"timezone_type": 3,
"timezone": "UTC"
}
}
]
}
},
如您所见,每个块都以以下顺序开始: 值、差点、总计、标签。
但是,有时数据已损坏,我在响应中发现了一种模式,我可以使用它来知道数据已损坏,每个小部分始终以标签和值开头:
{
"id": 3,
"name": "188Bet",
"odds": {
"data": [
{
"label": "1",
"value": "1.04",
"probability": "96.15%",
"dp3": "1.040",
"american": -2500,
"factional": null,
"winning": false,
"handicap": null,
"total": null,
"bookmaker_event_id": null,
"last_update": {
"date": "2019-11-29 16:35:31.000000",
"timezone_type": 3,
"timezone": "UTC"
}
},
{
"label": "X",
"value": "9.50",
"probability": "10.53%",
"dp3": "9.500",
"american": 850,
"factional": null,
"winning": false,
"handicap": null,
"total": null,
"bookmaker_event_id": null,
"last_update": {
"date": "2019-11-29 16:35:31.000000",
"timezone_type": 3,
"timezone": "UTC"
}
},
{
"label": "2",
"value": "18.00",
"probability": "5.56%",
"dp3": "18.000",
"american": 1700,
"factional": null,
"winning": true,
"handicap": null,
"total": null,
"bookmaker_event_id": null,
"last_update": {
"date": "2019-11-29 16:35:31.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
]
}
},
问题是我的 API 响应一次包含 100 个上述片段,是否可以使用 JQ / sed 或任何其他 shell 工具来删除包含损坏模式的 json 片段?如果是这样,我怎样才能做到这一点?
我一直在尝试删除损坏的数据,但是我可以实现它的唯一方法是将数据拆分为每个文件的一个段,然后删除包含损坏模式的文件,但我想知道是否有更快的方法。
谢谢
【问题讨论】: