0
だから私はこれからもう一度やり直そうとしています。私は昨日何時間も盗んでいたので、ちょっとした手助けをするのに素敵なお話をするのが最善だと思った。Python/JSON:loop themoviedb api画像呼び出し
は、私がここにある
tmdb_posters('ID')
としてIDを使用してラインをループにそれを得るように見えることができない画像IDの
tt1211837
tt0151804
tt2543164
tt2911666
tt2140479
のリストとの.txtファイルを持っていますループなしでコードを書くことができます。
import os
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)
if __name__=="__main__":
tmdb_posters('tt1211837') # <--- ID
しかし、私は試してみて、私はJSONのキー「ポスターは」悪いことを私に言って400クライアントのエラーメッセージと別のものを得るループの任意のフォームにこれを置きます。
事前にお手伝いいただければ幸いです。私は髪を守りたい。
UPDATE
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)
file = open("data/titles3.txt", "r")
splits = file.read().splitlines()
for line in splits:
if __name__ == "__main__":
file = open("data/posters.txt", "a")
woop = tmdb_posters(line)
file.write(str(woop))
file.close()
UPDATE 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()
は、ITが
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)
私は昨日いくつかの方法を試しましたが、ここで私は掘り出したものです。あまりにも確かに私はそれを右に得ている。 __name場合 __ == "__ MAIN__":ファイル内の行の ファイル=オープン( "データ/ titles3.txt"、 "R") 印刷tmdb_posters(ライン) – impshum
'は改行文字(があるでしょう\ n ')が各行の最後に追加されているので、それを削除する必要があります – Stack
これは論理的なようです。 – impshum