【问题标题】:DateTime stamp not reading correctly as string日期时间戳无法正确读取为字符串
【发布时间】:2020-03-26 08:47:35
【问题描述】:
        import pandas as pd
        import json
        import urllib.request
        from time import time, sleep
        from datetime import datetime


        #
        #
        # Still need to add DateTime stamp to each entry and save DataFrame to csv file with self                         updating name
        #
        #

        # This only works for API's that return a string formatted like a dictionary


        # ticker_url is the link to your market 
        # y_seconds is how many seconds code waits before running again. Typically API requests are limited in this
        # case it is limited to 1 time per second 
        # 
        # You may need to adjust your column names You can check column name by uncommenting and running this code below
        #
        # ticker_url = 'https://api.bittrex.com/v3/markets/btc-usdt/ticker'
        # with urllib.request.urlopen(ticker_url) as response:
        #      html = response.read()

        ticker_url = 'https://api.bittrex.com/v3/markets/btc-usdt/ticker'
        interval_in_hours = .01
        end_time = time() + interval_in_hours * 3600
        y_seconds = 1
        ticker_list = pd.DataFrame(columns = ['Symbol' , 'Last Trade', 'Bid' , 'Ask'])

        while time() < end_time:

            with urllib.request.urlopen(ticker_url) as response:
               html = response.read()

            ticker_data = json.loads(html)
            ticker_list = ticker_list.append(ticker_data , ignore_index=True)
            sleep(y_seconds)

        ticker_list.to_csv('market_data'+str(datetime.timestamp)+'.csv')

我有一些关于编辑过程的笔记,但我现在遇到的主要问题是在这里格式化最后一行:


        ticker_list.to_csv('market_data'+str(datetime.timestamp)+'.csv')

这段代码创建了这个文件


        market_data<method 'timestamp' of 'datetime.datetime' objects>.csv

我想让它读取 market_data20191130133030

2019 年 11 月 30 日下午 1:30 和 30 秒。我想让时间戳读取文件创建的时间。

谁能帮我解决这个问题??

【问题讨论】:

    标签: python pandas csv datetime


    【解决方案1】:

    datetime.timestamp() 是一个function。因此将您呼叫的行更改为:

    ticker_list.to_csv('market_data'+str(datetime.timestamp())+'.csv')
    

    但是,datetime.timestamp() 返回 POSIX 时间戳(自 1970 年 1 月 1 日以来的秒数)。如果您想要格式为 YYYYMMDDHHMMSS 的时间戳,则需要使用 datetime.strftime(format)。您将使用的格式是%Y%m%d%H%M%S

    【讨论】:

    • 感谢您调整我的尝试模式。我按照你的建议尝试了,但它要求我通过一个我没有的论点。我从 timestamp() 切换到 today() 并且能够解决我的问题!感谢您的快速回复!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 2012-10-25
    • 1970-01-01
    • 2021-06-27
    相关资源
    最近更新 更多