Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 列表循环未打印结果_Python_Loops - Fatal编程技术网

Python 列表循环未打印结果

Python 列表循环未打印结果,python,loops,Python,Loops,我希望在循环中使用日期对象列表,但没有得到预期的输出。该功能包括日期和货币参数。'time\u start'参数工作不正常。我想循环调用函数之前生成的日期列表,但API向我发送了以下错误。我试图将格式更改为date对象,但它仍然不起作用 错误: {'status': {'timestamp': '2019-10-16T02:43:16.500Z', 'error_code': 400, 'error_message': '"time_start" must be a valid ISO 8601

我希望在循环中使用日期对象列表,但没有得到预期的输出。该功能包括日期和货币参数。
'time\u start'
参数工作不正常。我想循环调用函数之前生成的日期列表,但API向我发送了以下错误。我试图将格式更改为date对象,但它仍然不起作用

错误:

{'status': {'timestamp': '2019-10-16T02:43:16.500Z', 'error_code': 400, 'error_message': '"time_start" must be a valid ISO 8601 timestamp or unix time value', 'elapsed': 0, 'credit_count': 0, 'notice': None}}
守则:

available = ['1WO', 'ABX',  'ADH',  'ALX',  'AMLT', 'BCH',  'BRC',  'BSV',  'BTC',  'BTRN', 'CAN',  'CEL',  'CHI',  'CMCT', 'COT',  'CRPT', 'DACS', 'DAI',  'DASH', 'DENT', 'DREAM',  'DRG',  'EARTH',  'ECH',  'ENJ',  'ETC',  'ETH',  'ETN',  'EZT',  'FANZ', 'FCT',  'FDX',  'FFC',  'FLIXX',  'FLP',  'FSN',  'FTT',  'FTX',  'GAT',  'GEN',  'GET',  'GUSD', 'GXC',  'GZE',  'HART', 'HERO', 'HOT',  'ICASH',  'IDH',  'IGNX', 'IHF',  'IND',  'IPSX', 'IXT',  'KRL',  'LALA', 'LDC',  'LIKE', 'LND',  'LTC',  'MCO',  'MFUN', 'MGO',  'MITH', 'MITX', 'MRK',  'MT', 'MTN',  'NEO',  'NPLC', 'OAX',  'OMG',  'ONG',  'ONT',  'ORBS', 'PAL',  'PLG',  'PMA',  'PPL',  'PWV',  'QASH', 'QCTN', 'QTUM', 'RBLX', 'REP',  'RFOX', 'SAL',  'SER',  'SGN',  'SIX',  'SNIP', 'SNX',  'SPHTX',  'SPIKE',  'STAC', 'STACS',  'STORJ',  'STU',  'STX',  'THRT', 'THX',  'TPAY', 'TPT',  'TRX',  'TTU',  'UBT',  'UBTC', 'UKG',  'USDC', 'VANY', 'VET',  'VUU',  'VZT',  'WIN',  'WLO',  'XEM',  'XES',  'XLM',  'XMR',  'XNK',  'XRP',  'XTX',  'ZCO',  'ZEC',  'ZPR']

def getOHLCV(currencies, start_dates):
   c_price = []
   data = {}
   try:
       url = 'https://pro-api.coinmarketcap.com/v1/cryptocurrency/ohlcv/historical'
       parameters = {
          'symbol': ",".join(currencies),
          'time_start': ",".join(start_dates),
          'count':'91',
          'interval':'daily',
          'convert':'JPY'
        }
        headers = {
          'Accepts': 'application/json',
          'X-CMC_PRO_API_KEY': 'xxxxxxxxxxxxxxxxxxxxxxxxx'
        }
        session = Session()
        session.headers.update(headers)
       response = session.get(url, params=parameters)
       data = json.loads(response.text)
       for currency in  data['data']:
           used_list = [
               item['quote']['JPY']
               for item in data['data'][currency]['quotes']
           ]
           price = pd.DataFrame.from_records(used_list)
           price['timestamp'] = pd.to_datetime(price['timestamp'])
           price['timestamp'] = price['timestamp'].astype(str).str[:-15]
           price_c = price.set_index('timestamp').close
           c_price.append(price_c.rename(currency))
   except Exception as e:
        print (data)
   return c_price

date_list = [(date.today() - timedelta(days= x * 91)).strftime('%Y-%m-%d') for x in range(3)]
one = []
for i in date_list:
  c_price = []
  c_price.extend(getOHLCV(available[:61], i))
  c_price.extend(getOHLCV(available[61:], i))
  #c_price = pd.concat(c_price, axis=1, sort=True)
  one.append(c_price)

您需要将日期转换为时间戳格式:

from datetime import datetime
from datetime import timezone

dat = '2019-10-16T02:43:16.500Z'
dat = datetime.strptime(dat, '%Y-%m-%dT%H:%M:%S.%fZ')
print(dat)
timestamp = dat.replace(tzinfo=timezone.utc).timestamp()
print(timestamp)
输出:

2019-10-16 02:43:16.500000
 1571193796.5

您需要将日期转换为时间戳格式:

from datetime import datetime
from datetime import timezone

dat = '2019-10-16T02:43:16.500Z'
dat = datetime.strptime(dat, '%Y-%m-%dT%H:%M:%S.%fZ')
print(dat)
timestamp = dat.replace(tzinfo=timezone.utc).timestamp()
print(timestamp)
输出:

2019-10-16 02:43:16.500000
 1571193796.5

错误似乎很明显-您必须发送
时间戳
,它表示自1970-01-01以来的秒数,而不是日期和时间。错误似乎很明显-您必须发送
时间戳
,它表示自1970-01-01以来的秒数,而不是日期和时间。