如何使用PHP拆分JSON对象并提取比分中的主客队得分
嘿,这事儿挺简单的,我给你几个常用编程语言的实现方案,你根据自己的技术栈选就行:
JavaScript 实现
先拿你给的原始数据举例,核心思路是把score字符串按' - '分割成数组,再转成整数赋值给新字段:
// 你的原始比赛数据 const matchData = {"home_name":"Atletico Madrid", "away_name":"Levante", "score":"3 - 0", "ht_score":"1 - 0", "ft_score":"3 - 0", "et_score":"", "time":"FT", "league_id":"74", "status":"FINISHED", "added":"2018-04-15 14:11:01", "last_changed":"2018-04-15 16:09:02", "home_id":"26", "away_id":"28"}; // 拆分score字段 const scoreParts = matchData.score.split(' - '); matchData.homescore = parseInt(scoreParts[0], 10); matchData.awayscore = parseInt(scoreParts[1], 10); // 要是不需要原来的score字段,可以删掉它 delete matchData.score; console.log(matchData);
如果怕遇到空的score字段(比如加时赛没打的情况),可以加个判断避免报错:
if (matchData.score) { const scoreParts = matchData.score.split(' - '); // 确保分割后是两个有效数值 if (scoreParts.length === 2 && !isNaN(scoreParts[0]) && !isNaN(scoreParts[1])) { matchData.homescore = parseInt(scoreParts[0], 10); matchData.awayscore = parseInt(scoreParts[1], 10); } }
Python 实现
Python的逻辑差不多,处理字典形式的比赛数据:
# 原始比赛数据(解析JSON后就是这个字典格式) match_data = {"home_name":"Atletico Madrid", "away_name":"Levante", "score":"3 - 0", "ht_score":"1 - 0", "ft_score":"3 - 0", "et_score":"", "time":"FT", "league_id":"74", "status":"FINISHED", "added":"2018-04-15 14:11:01", "last_changed":"2018-04-15 16:09:02", "home_id":"26", "away_id":"28"} # 拆分score字段 score_parts = match_data['score'].split(' - ') match_data['homescore'] = int(score_parts[0]) match_data['awayscore'] = int(score_parts[1]) # 可选:删除原score字段 del match_data['score'] print(match_data)
同样,为了健壮性,处理可能的空值或异常格式:
score = match_data.get('score') if score: score_parts = score.split(' - ') if len(score_parts) == 2 and score_parts[0].isdigit() and score_parts[1].isdigit(): match_data['homescore'] = int(score_parts[0]) match_data['awayscore'] = int(score_parts[1])
内容的提问来源于stack exchange,提问作者Zee33
相关产品推荐
相关产品推荐

