将数字序列与数学运算符连接而无需执行运算符

时间:2019-02-28 04:33:00

标签: python python-3.x string api concatenation

我必须在URL http://api.semanticscholar.org/v1/paper/的末尾连接论文“ 10.1145 / 3175684.3175695”的DOI。但是当我尝试执行此操作时,python会连接除法的结果。有没有办法告诉python不要将/中间的10.1145/3175684.3175695符号当作除法运算符。

id = 10.1145/3175684.3175695
url = '{}{}'.format("http://api.semanticscholar.org/v1/paper/",id)
# Make a get request with the parameters.
response = requests.get(url)
print(response.content)

2 个答案:

答案 0 :(得分:4)

该问题是由于您没有将DOI号包装在引号中以使其成为字符串而引起的。您会注意到,基本URL是一个字符串,其中包含正斜杠,但是没有相同的问题。

您具有以下条件:

doi = 10.1145/3175684.3175695

哪个python解释为这样的数学表达式:

doi = 10.1145 / 3175684.3175695

您需要将其用单引号(或双引号)引起来,以使其成为字符串文字:

doi = '10.1145/3175684.3175695'
base_url = 'http://api.semanticscholar.org/v1/paper/'
url = base_url + doi

答案 1 :(得分:2)

s = "http://api.semanticscholar.org/v1/paper/"
v =  "10.1145/3175684.3175695"
t = s+v

t将导致

 'http://api.semanticscholar.org/v1/paper/10.1145/3175684.3175695'