Yahoo Finance的JSON Deserialize

資料型態不保證完全正確,但目前至少可以解析Yahoo Finance的資料。

 

class PoCo_YahooFinance
{
    public PoCo_YahooFinance_Chart chart { get; set; }
}

class PoCo_YahooFinance_Chart
{
    public List<PoCo_YahooFinance_Result> result { get; set; }
    public string error { get; set; }
}

class PoCo_YahooFinance_Result
{
    public PoCo_YahooFinance_Meta meta { get; set; }
    public List<long> timestamp { get; set; }
    public PoCo_YahooFinance_Indicators indicators { get; set; }
}

class PoCo_YahooFinance_Meta
{
    public string currency { get; set; }
    public string symbol { get; set; }
    public string exchangeName { get; set; }
    public string instrumentType { get; set; }
    public long? firstTradeDate { get; set; } //allow nullable
    public long? regularMarketTime { get; set; } //allow nullable
    public int gmtoffset { get; set; }
    public string timezone { get; set; }
    public string exchangeTimezoneName { get; set; }
    public decimal? regularMarketPrice { get; set; } //allow nullable
    public decimal? chartPreviousClose { get; set; } //allow nullable
    public decimal? previousClose { get; set; } //allow nullable
    public int? scale { get; set; } //allow nullable
    public int? priceHint { get; set; } //allow nullable
    public PoCo_YahooFinance_CurrentTradingPeriod currentTradingPeriod { get; set; }
    public List<List<PoCo_YahooFinance_TradingPeriod_Unit>> tradingPeriods { get; set; }
    public string dataGranularity { get; set; }
    public string range { get; set; }
    public List<string> validRanges { get; set; }
}

class PoCo_YahooFinance_CurrentTradingPeriod
{
    PoCo_YahooFinance_TradingPeriod_Unit pre { get; set; }
    PoCo_YahooFinance_TradingPeriod_Unit regular { get; set; }
    PoCo_YahooFinance_TradingPeriod_Unit post { get; set; }
}

class PoCo_YahooFinance_TradingPeriod_Unit
{
    public string timezone { get; set; }
    public long start { get; set; }
    public long end { get; set; }
    public int gmtoffset { get; set; }
}

class PoCo_YahooFinance_Indicators
{
    public List<PoCo_YahooFinance_Quote> quote { get; set; }
}

class PoCo_YahooFinance_Quote
{
    public List<int?> volume { get; set; } //allow nullable
    public List<decimal?> high { get; set; } //allow nullable
    public List<decimal?> close { get; set; } //allow nullable
    public List<decimal?> low { get; set; } //allow nullable
    public List<decimal?> open { get; set; } //allow nullable
}

 

 

Logitech Unifying設備如何配對?


 

要進行Logitech Unifying設備的連接,基本來說就是兩個簡單的大步驟:

  1. 下載Unifying安裝程式 並完成安裝
  2. 進行裝置的配對

 

以下記錄裝置的配對過程:

1. 插上Unifying接收器,然後啟動應用程式,點選「前進」。

2. 如果點選上圖的「前進」前,你尚未插入接收器,就會看到以下這個畫面。如果有插接收器的話,則跳過這個畫面,到步驟3。

3. 連接裝置的電源狀態要是OFF。到了這個步驟後,再將裝置的OFF推到ON的位置。

4. 如果連接的是鍵盤,則會看到以下的畫面。要你在鍵盤上簡單輸入幾個字元,確認已連接成功。若成功且正確的話,再以滑鼠點選「是」,最後點選「前進」。如果連接的是滑鼠的話,則會只看到下圖中「是」與「否」的按鈕,點「是」→「前進」即可完成新增。因此建議如果你有鍵盤與滑鼠要與Unifying接收器配對的話,先配對滑鼠會比較直覺、方便(或是你要直接按Tab接換應該也是OK的)。

5. 完成!

  在羅技的K850鍵盤、M720滑鼠上可以連接三個裝置,同樣可以使用上述的方式來完成指定。我自己的作法是,如果第一組是藍芽設備A、第二組是Unifying設備、第三組是藍芽設備B。我要設定第二組時,先長按「2」,讓燈號快速閃爍,然後關閉電源(ON→OFF)。接著按照上面的說明步驟即可完成指定。

 

【Python File】如何讀取目錄下所有的檔案列表


# 找出指定目錄下的所有.csv檔

from os import listdir
from os.path import isfile, isdir, join, splitext

# 目錄位置-要找出目錄下的所有檔案清單
mypath = "C:\\Users\\sya\\Downloads"

# 取得所有檔案與子目錄名稱
files = listdir(mypath)

# 要移除的清單 (不是.csv的檔案)
removelist = list() 

# 迴圈讀取目錄下的檔案
for f in files:

  # 組合出檔案的絕對路徑
  fullpath = join(mypath, f)

  # 只處理 fullpath 是檔案的項目(略過目錄)
  if isfile(fullpath):
    if splitext(f)[1] != '.csv':
      removelist.append(f)

# 從files中移除不是.csv的檔案
for item in removelist:
    files.remove(item)

 

其他: