我使用python,我有一个多行字符串,如下所示:
[Event "2nd Elite Classical Team Battle"]
[Site "https://lichess.org/is3qBnmQ"]
[Date "2020.07.25"]
[White "adamredsox24"]
[Black "ricjimenez_50"]
[Result "0-1"]
[UTCDate "2020.07.25"]
我想用变量(newName
)替换这些类型字符串中的"adamredsox24"
,但是从一个集合到另一个集合,子字符串并不总是"adamredsox24"
,而且对我来说是未知的。换句话说,白色后面的引号中的子字符串可以是任何东西,我不知道它是什么,但我想替换它,我该怎么做
此外,单词white将始终存在,我要替换的单词将始终位于单词white旁边的引号内,整行将始终包含在[]中
要查看数据示例,请参见以下代码片段:
import requests
gameID = "nOA5FDoZ"
r = requests.post(
"https://lichess.org/games/export/_ids",
data = gameID,
params={"moves":"false", "opening":"true"}
)
stringBlock = r.text
print(stringBlock)
我尝试过以下方法:
newName="BOB"
stringBlock=re.sub('[White.*?"]','[White "' + newName + '"]',stringBlock, flags=re.DOTALL)
还有很多变化,但都没有运气。以下是gameID的几个值,以查看更多数据示例: P2xKlpp6,is3qBnmQ,kEdXQOIw
我不确定这是否行得通。参考
我在API文档中做了一些研究,看来可靠地访问所需数据的最简单方法是以JSON格式获取数据
Link to API Docs
下面是请求JSON格式数据的代码示例:
使用json获取响应允许您按名称轻松访问响应的每个部分,并根据需要操作数据
为白色棋子更换棋手
Json响应示例
相关问题 更多 >
编程相关推荐