我正在使用Python 3。
基本上,我正在使用urllib进行API调用并收到错误:
格式字符串“ 中遇到 ”ValueError:Single'}'
我已经研究过各种其他解决方案,但它们似乎没有用。 基本上我正在做的是: 实际的API将无法重现,因为它需要一个API密钥(显然可以忽略)以及需要在经过验证的网络上。 我认为这个问题与“{last}}%27%29%20AND%20authfirst%28%27 {first}}”有一个额外的括号。例如,如果我想在没有python或.format()的url栏中查询它,它看起来像: 或更具体地说: Doe}%27%29%20AND%20authfirst%28%27John}%27%29& 如果我在python中使用后一种方法,我没有问题,但它当然不允许我输入名称进行查询。 import urllib.request
import urllib.parse
def query_person(first, last):
person_request = urllib.request.urlopen('http://api.querysite.com/content/search/index:AUTHOR?query=authlast%28%27{last}}%27%29%20AND%20authfirst%28%27{first}}%27%29&'.format(first=first,last=last))
return(person_request)
print(query_person("John", "Doe"))
http://api.querysite.com/content/search/index:AUTHOR?query=authlast%28%27Doe}%27%29%20AND%20authfirst%28%27John}%27%29&
答案 0 :(得分:3)
如果你希望它保留在字符串中,你需要加倍你的单支撑:
例如:
'{first}}}'.format(first='John') == 'John}'
在你的情况下:
person_request = urllib.request.urlopen('http://api.querysite.com/content/search/index:AUTHOR?query=authlast%28%27{last}}}%27%29%20AND%20authfirst%28%27{first}}}%27%29&'.format(first=first,last=last))