Opensea.io でコレクション Aethir Wars の所有者のリストを取得しようとしています。所有者、所有するNFT、およびETHアドレスが必要です。所有者とその住所の長いリストを取得できますが、何らかの理由でリストが完全ではありません。また、NFT が転送されて購入されなかった場合、「Last_Sale」パラメーターが null になるため、if ステートメントを追加する必要がありました。どんな助けでも大歓迎です。
import requests
url = "https://api.opensea.io/api/v1/assets"
api_key = "api key"
col = 'reapers'
def print_owners(race, offset):
querystring = {'order_by': 'name', 'order_direction': 'asc', 'offset': offset, 'limit': '50',
'collection': col, 'X-API-KEY': api_key}
response = requests.get(url, params=querystring)
data = response.json()
i = 0
for each_asset in data['assets']:
try:
if race in data['assets'][0]['name']:
if data["assets"][i]["last_sale"] is None:
print(data["assets"][i]["name"] + ': '
+ data["assets"][i]["sell_orders"][0]["maker"]["address"])
else:
print(data["assets"][i]["name"] + ': '
+ data["assets"][i]["last_sale"]["transaction"]["from_account"]["user"]["username"])
except TypeError:
pass
i += 1
x = range(0, 600, 50)
for stuff in x:
try:
print_owners(race='Reaper', offset=str(stuff))
except KeyError:
pass
try:
print_owners(race='Android', offset=str(stuff))
except KeyError:
pass
try:
print_owners(race='Goblin', offset=str(stuff))
except KeyError:
pass