簡體   English   中英

循環通過硬幣市值

[英]Looping through coin market cap

大家好,我正在嘗試訪問 Coin Market Cap API 並返回前 5000 名 slug 的價格以及 24 小時的交易量變化。 我還想保存返回到 CSV 文件的內容,以便將其添加到數據框中。 我嘗試了幾次使用響應變量編寫循環,但沒有運氣。 任何幫助都會很棒!

from inspect import Parameter
from requests import Request, Session
import json

url = 'https://pro-api.coinmarketcap.com/v1/cryptocurrency/quotes/latest' # Coinmarketcap API url

headers = {
        'Accepts': 'application/json',
        'X-CMC_PRO_API_KEY': 'API KEY'
    } 

parameter = {'slug':**, 'convert': 'USD' }

session = Session()
session.headers.update(headers)

response = session.get(url, params=parameter)

for parameter in response:
    print(parameter)

print(response)

嘗試如下操作:

import requests
import pandas as pd
import json

API_KEY = 'your_api_key_as_string'
url = 'https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest'

HEADERS = {'Accepts': 'application/json',
           'X-CMC_PRO_API_KEY': API_KEY}

PARAMS = {'convert': 'USD',
          'limit': 5000}

resp = requests.get(url, headers=HEADERS, params=PARAMS)

def get_data(resp):
    data = json.loads(resp.content)['data']
    rows = list()

    # check appropriate keys, e.g.:
    # data[0].keys()
    # dict_keys(['..., 'slug', ..., 'quote'])

    # check keys for `quote`:
    # data[0]['quote'].keys() # always only 'USD'
    # data[0]['quote']['USD'].keys()
    # dict_keys([..., 'volume_24h', ..., 'market_cap', ..., 'last_updated'])
    
    for item in data:
        rows.append([
             item['slug'], 
             item['quote']['USD']['market_cap'],
             item['quote']['USD']['volume_24h'],
             item['quote']['USD']['last_updated']])

    df = pd.DataFrame(
        rows, columns=['slug','market_cap','volume_24h','last_updated'])

    # remove timezone from datetime64[ns, UTC] in `last_updated`
    df['last_updated'] = pd.to_datetime(df.last_updated).dt.tz_localize(None)
    df.index.name = 'id'
    return(df)

if resp.status_code == 200:
    df = get_data(resp)
    # write to csv
    df.to_csv('crypto_latests.csv')
else:
    # bad request, handle error
    print(resp.status_code)

結果:

print(df.head())

        slug    market_cap    volume_24h        last_updated
id                                                          
0    bitcoin  3.861454e+11  4.041023e+10 2022-09-15 09:45:00
1   ethereum  1.951680e+11  2.509653e+10 2022-09-15 09:45:00
2     tether  6.789316e+10  6.372894e+10 2022-09-15 09:45:00
3   usd-coin  5.075118e+10  7.255377e+09 2022-09-15 09:45:00
4        bnb  4.450807e+10  1.128343e+09 2022-09-15 09:45:00

print(df.shape)
# (5000, 4)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM