在url中传递变量?

use*_*759 7 python url json urllib urlopen

所以我是python的新手,我迫切需要帮助.

我有一个文件,其中有一堆id(整数值)写在'em.它是一个文本文件.

现在我需要将文件中的每个id传递给一个url.

例如"https://example.com/[id]"

它将以这种方式完成

A = json.load(urllib.urlopen("https://example.com/(the first id present in the text file)"))
print A
Run Code Online (Sandbox Code Playgroud)

这将基本上做的是它将读取有关上述URL中存在的id的某些信息并显示它.我希望它以循环格式工作,在其中它将读取文本文件中的所有ID并将其传递给'A'中提到的URL并持续显示值.有没有办法做到这一点?

如果有人能帮助我,我将非常感激!

pyf*_*unc 17

可以使用旧样式字符串连接

>>> id = "3333333"
>>> url = "https://example.com/%s" % id
>>> print url
https://example.com/3333333
>>> 
Run Code Online (Sandbox Code Playgroud)

新样式字符串格式:

>>> url = "https://example.com/{0}".format(id)
>>> print url
https://example.com/3333333
>>> 
Run Code Online (Sandbox Code Playgroud)

通过avasal一个小的改动提到的文件读取:

f = open('file.txt', 'r')
for line in f.readlines():
    id = line.strip('\n')
    url = "https://example.com/{0}".format(id)
    urlobj = urllib.urlopen(url)
    try:
        json_data = json.loads(urlobj)
        print json_data
    except:
        print urlobj.readlines()
Run Code Online (Sandbox Code Playgroud)


xva*_*tar 5

懒惰的风格:

url = "https://example.com/" + first_id

A = json.load(urllib.urlopen(url))
print A
Run Code Online (Sandbox Code Playgroud)

老式:

url = "https://example.com/%s" % first_id

A = json.load(urllib.urlopen(url))
print A
Run Code Online (Sandbox Code Playgroud)

新款2.6+:

url = "https://example.com/{0}".format( first_id )

A = json.load(urllib.urlopen(url))
print A
Run Code Online (Sandbox Code Playgroud)

新款2.7+:

url = "https://example.com/{}".format( first_id )

A = json.load(urllib.urlopen(url))
print A
Run Code Online (Sandbox Code Playgroud)