Python/JSON:循环MovieDB api映像调用

Python/JSON:循环MovieDB api映像调用,python,json,Python,Json,所以我要再次从这个开始。昨天我被它打扰了好几个小时,所以我想我最好向你们这些可爱的家伙请求一点帮助 我有一个带有图像ID列表的.txt文件 tt1211837 tt0151804 tt2543164 tt2911666 tt2140479 我似乎无法让它使用ID作为循环线 tmdb_posters('ID') 下面是没有循环的代码(它本身工作得很好) 更新2 import urllib import urllib2 from bs4 import BeautifulSoup import s

所以我要再次从这个开始。昨天我被它打扰了好几个小时,所以我想我最好向你们这些可爱的家伙请求一点帮助

我有一个带有图像ID列表的.txt文件

tt1211837
tt0151804
tt2543164
tt2911666
tt2140479
我似乎无法让它使用ID作为循环线

tmdb_posters('ID')
下面是没有循环的代码(它本身工作得很好)

更新2

import urllib
import urllib2
from bs4 import BeautifulSoup
import sys
import time
import requests
import random

CONFIG_PATTERN = 'http://api.themoviedb.org/3/configuration?api_key={key}'
IMG_PATTERN = 'http://api.themoviedb.org/3/movie/{imdbid}/images?api_key={key}'
KEY = '*****'


def _get_json(url):
    r = requests.get(url)
    return r.json()


def get_poster_urls(imdbid):

    config = _get_json(CONFIG_PATTERN.format(key=KEY))
    base_url = config['images']['base_url']
    sizes = config['images']['poster_sizes']

    def size_str_to_int(x):
        return float("inf") if x == 'original' else int(x[1:])
    max_size = max(sizes, key=size_str_to_int)

    posters = _get_json(IMG_PATTERN.format(key=KEY, imdbid=imdbid))['posters']
    poster_urls = []
    for poster in posters:
        rel_path = poster['file_path']
        url = "{0}{1}{2}".format(base_url, max_size, rel_path)
        poster_urls.append(url)

    return poster_urls


def tmdb_posters(imdbid, count=None, outpath='.'):
    urls = get_poster_urls(imdbid)
    print random.choice(urls)


with open('data/titles3.txt', 'r') as ids:
        ids = ids.read().split('\n')
        for poster in ids:
            if __name__ == "__main__":
                file = open("data/posters.txt", "a")
                file.write(str(tmdb_posters(poster)) + "\n")
                file.close()
使用它

import urllib
import urllib2
from bs4 import BeautifulSoup
import sys
import time
import requests
import random

CONFIG_PATTERN = 'http://api.themoviedb.org/3/configuration?api_key={key}'
IMG_PATTERN = 'http://api.themoviedb.org/3/movie/{imdbid}/images?api_key={key}'
KEY = '*****'


def _get_json(url):
    r = requests.get(url)
    return r.json()


def get_poster_urls(imdbid):

    config = _get_json(CONFIG_PATTERN.format(key=KEY))
    base_url = config['images']['base_url']
    sizes = config['images']['poster_sizes']

    def size_str_to_int(x):
        return float("inf") if x == 'original' else int(x[1:])
    max_size = max(sizes, key=size_str_to_int)

    posters = _get_json(IMG_PATTERN.format(key=KEY, imdbid=imdbid))['posters']
    poster_urls = []
    for poster in posters:
        rel_path = poster['file_path']
        url = "{0}{1}{2}".format(base_url, max_size, rel_path)
        poster_urls.append(url)

    return poster_urls


def tmdb_posters(imdbid, count=None, outpath='.'):
    urls = get_poster_urls(imdbid)
    woop  = random.choice(urls)
    file = open("data/posters.txt", "a")
    file.write(str(woop) + "\n")
    file.close()


with open('data/titles3.txt', 'r') as ids:
        ids = ids.read().split('\n')
        for poster in ids:
            if __name__ == "__main__":
                tmdb_posters(poster)

我还不能发表评论,但它似乎在一个循环中工作得很好。
你能发布代码吗?你是如何读取ID的?

我昨天尝试了几种方法,但这里有一种是我找到的。但我不太确定我是否做对了。file=open(“data/titles3.txt”,“r”)表示文件中的行:如果name_uuu==“\uuu main”:print tmdb_posters(line)将在每行末尾添加一个换行符('\n'),因此您需要删除它,这看起来是合乎逻辑的。尝试此操作,将open('t.txt','r')作为id:ids=ids.read()。拆分('\n')print(id)
file=open(“data/titles3.txt”,“r”)splits=file.read().splitlines()用于拆分中的行:if\uuuuu name\uuuuuuu==“\uuuuuuu main\uuuuuu”:tmdb\u海报(行)
import urllib
import urllib2
from bs4 import BeautifulSoup
import sys
import time
import requests
import random

CONFIG_PATTERN = 'http://api.themoviedb.org/3/configuration?api_key={key}'
IMG_PATTERN = 'http://api.themoviedb.org/3/movie/{imdbid}/images?api_key={key}'
KEY = '*****'


def _get_json(url):
    r = requests.get(url)
    return r.json()


def get_poster_urls(imdbid):

    config = _get_json(CONFIG_PATTERN.format(key=KEY))
    base_url = config['images']['base_url']
    sizes = config['images']['poster_sizes']

    def size_str_to_int(x):
        return float("inf") if x == 'original' else int(x[1:])
    max_size = max(sizes, key=size_str_to_int)

    posters = _get_json(IMG_PATTERN.format(key=KEY, imdbid=imdbid))['posters']
    poster_urls = []
    for poster in posters:
        rel_path = poster['file_path']
        url = "{0}{1}{2}".format(base_url, max_size, rel_path)
        poster_urls.append(url)

    return poster_urls


def tmdb_posters(imdbid, count=None, outpath='.'):
    urls = get_poster_urls(imdbid)
    print random.choice(urls)


with open('data/titles3.txt', 'r') as ids:
        ids = ids.read().split('\n')
        for poster in ids:
            if __name__ == "__main__":
                file = open("data/posters.txt", "a")
                file.write(str(tmdb_posters(poster)) + "\n")
                file.close()
import urllib
import urllib2
from bs4 import BeautifulSoup
import sys
import time
import requests
import random

CONFIG_PATTERN = 'http://api.themoviedb.org/3/configuration?api_key={key}'
IMG_PATTERN = 'http://api.themoviedb.org/3/movie/{imdbid}/images?api_key={key}'
KEY = '*****'


def _get_json(url):
    r = requests.get(url)
    return r.json()


def get_poster_urls(imdbid):

    config = _get_json(CONFIG_PATTERN.format(key=KEY))
    base_url = config['images']['base_url']
    sizes = config['images']['poster_sizes']

    def size_str_to_int(x):
        return float("inf") if x == 'original' else int(x[1:])
    max_size = max(sizes, key=size_str_to_int)

    posters = _get_json(IMG_PATTERN.format(key=KEY, imdbid=imdbid))['posters']
    poster_urls = []
    for poster in posters:
        rel_path = poster['file_path']
        url = "{0}{1}{2}".format(base_url, max_size, rel_path)
        poster_urls.append(url)

    return poster_urls


def tmdb_posters(imdbid, count=None, outpath='.'):
    urls = get_poster_urls(imdbid)
    woop  = random.choice(urls)
    file = open("data/posters.txt", "a")
    file.write(str(woop) + "\n")
    file.close()


with open('data/titles3.txt', 'r') as ids:
        ids = ids.read().split('\n')
        for poster in ids:
            if __name__ == "__main__":
                tmdb_posters(poster)