我正在尝试解析此JSON响应:
[
"http://torrent.ubuntu.com:6969/announce",
"udp://open.demonii.com:1337/announce",
"udp://torrent.ubuntu.com:6969/announce",
"udp://tracker.leechers-paradise.org:6969/announce",
"udp://tracker.openbittorrent.com:80/announce"
]
使用:
for item in jdata:
torrent_tracker = item
print(torrent_tracker)
magnet = "magnet:?xt=urn:btih:" + hash + "&tr=" + torrent_tracker
但它似乎只是分别得到每一行。有没有办法可以将所有JSON结果输入torrent_tracker
var?
该JSON的有效种子跟踪器可能是:
&tr=udp://torrent.ubuntu.com:6969/announce&tr=udp://tracker.leechers-paradise.org:6969/announce&tr=udp://tracker.openbittorrent.com:80/announce&tr=udp://tracker.coppersurfer.tk:6969/announce
答案 0 :(得分:0)
只需使用+=
(在python 3中)。
torrent_tracker = torrent_tracker + item
适用于任何python。
如果你想要一个列表,在for循环之上,请放置torrent_tracker = []
并将项目包装在[]
(torrent_tracker = torrent_tracker + [item]
)中。对于字符串,请在for循环之前设置torrent_tracker = ''
。
答案 1 :(得分:0)
无需for
循环。您可以在列表中添加list comprehension:
["&tr=" + s for s in jdata]
然后,您可以使用string.join()
加入他们。
因此,例如,这可能适合您:
magnet = "magnet:?xt=urn:btih:" + hash + "".join(["&tr=" + s for s in jdata])
虽然如果您打算将这些作为GET参数发送,您可能需要先对它们进行URL编码;)
答案 2 :(得分:0)
不使用循环使用join()
方法:
torrent_tracker = '&tr=' + '&tr='.join(jdata)
magnet = "magnet:?xt=urn:btih:" + hash + torrent_tracker