だから私はpythonに慣れていないので、どうしても助けが必要です。
'emで記述されたID(整数値)の束を含むファイルがあります。そのテキストファイル。
次に、ファイル内の各IDをURLに渡す必要があります。
例:「https://example.com/[id]」
それはこのように行われます
A = json.load(urllib.urlopen("https://example.com/(the first id present in the text file)"))
print A
これが本質的に行うことは、上記のURLに存在するIDに関する特定の情報を読み取り、それを表示することです。これをループ形式で機能させたいのですが、テキストファイル内のすべてのIDを読み取り、それを「A」に記載されているURLに渡して、値を継続的に表示します。これを行う方法はありますか?
誰かが私を助けてくれたらとてもありがたいです!
古いスタイルの文字列連結を使用できます
>>> id = "3333333"
>>> url = "https://example.com/%s" % id
>>> print url
https://example.com/3333333
>>>
新しいスタイルの文字列フォーマット:
>>> url = "https://example.com/{0}".format(id)
>>> print url
https://example.com/3333333
>>>
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()
怠惰なスタイル:
url = "https://example.com/" + first_id
A = json.load(urllib.urlopen(url))
print A
古いスタイル:
url = "https://example.com/%s" % first_id
A = json.load(urllib.urlopen(url))
print A
新しいスタイル2.6 +:
url = "https://example.com/{0}".format( first_id )
A = json.load(urllib.urlopen(url))
print A
新しいスタイル2.7 +:
url = "https://example.com/{}".format( first_id )
A = json.load(urllib.urlopen(url))
print A
最初に行う必要があるのは、ファイルから各行を読み取る方法を知ることです。まず、ファイルを開く必要があります。これは、with
ステートメントで実行できます。
with open('my-file-name.txt') as intfile:
これにより、ファイルが開かれ、そのファイルへの参照がintfile
に保存され、with
ブロックの最後でファイルが自動的に閉じられます。次に、ファイルから各行を読み取る必要があります。通常の古いforループでそれを行うことができます:
for line in intfile:
これにより、ファイルの各行がループされ、一度に1つずつ読み取られます。ループでは、各行にline
としてアクセスできます。残っているのは、指定したコードを使用してWebサイトにリクエストを送信することだけです。不足している1つのビットは、「文字列補間」と呼ばれるものです。これにより、文字列を他の文字列、数値、またはその他のものでフォーマットできます。あなたの場合、文字列(ファイルからの行)を別の文字列(URL)の中に入れたいと思います。これを行うには、%s
フラグを文字列補間演算子%
とともに使用します。
url = 'http://example.com/?id=%s' % line
A = json.load(urllib.urlopen(url))
print A
すべてをまとめると、次のようになります。
with open('my-file-name.txt') as intfile:
for line in intfile:
url = 'http://example.com/?id=%s' % line
A = json.load(urllib.urlopen(url))
print A
Python 3 +
新しい文字列フォーマットはPython 3でサポートされています。これは、文字列をフォーマットするためのより読みやすく、より良い方法です。これについて読むのに適した記事は次のとおりです。 Python 3のf-Strings
この場合、次のようにフォーマットできます。
_url = f"https://example.com/{id}"
_
詳細な例
複数のパラメータをURLに渡したい場合は、次のように実行できます。
_name = "test_api_4"
owner = "[email protected]"
url = f"http://localhost:5001/files/create" \
f"?name={name}" \
f"&owner={owner}" \
_
ここでは複数のf文字列を使用しており、「\」を追加できます。これにより、間に改行文字を挿入することなく、同じ行に保持されます。
スペースがある値の場合
このような値の場合、pythonファイルに_from urllib.parse import quote
_をインポートしてから、次のような文字列を引用する必要があります:quote("firstname lastname")
これにより、スペース文字が_%20
_に置き換えられます。