簡體   English   中英

Python字典到JSON文件轉換問題

[英]Python Dictionary to JSON file conversion problem

所以我一直在研究一個項目,該項目抓取金融網站並將前 5 名變化最快的股票保存在 json 文件中以供以后使用。 我的問題是它的格式不正確。

將其轉換為 JSON 的函數:

def writeToJSON(num, short, name, price, change):
stocks = {}
numStock = {
    "Short" : short,
    "Name" : name,
    "Price" : price,
    "Change" : change
    }


stocks.update({str(num) : numStock,})
with open(".\\sstocksim\\stocks.json", "a") as f:
    json.dump(stocks, f, indent=3)
    f.close()

JSON 輸出:

 {
   "1": {
      "Short": "AXSM",
      "Name": "Axsome Therapeutics, Inc.",
      "Price": "81.64",
      "Change": "+34.85"
   }
}{
   "2": {
      "Short": "TSLA",
      "Name": "Tesla, Inc.",
      "Price": "381.44",
      "Change": "+23.05"
   }
}{
   "3": {
      "Short": "CGX.TO",
      "Name": "Cineplex Inc.",
      "Price": "33.83",
      "Change": "+9.82"
   }
}{
   "4": {
      "Short": "MIRM",
      "Name": "Mirum Pharmaceuticals, Inc.",
      "Price": "17.17",
      "Change": "+8.98"
   }
}{
   "5": {
      "Short": "AMGN",
      "Name": "Amgen Inc.",
      "Price": "244.51",
      "Change": "+7.77"
   }
}

出於某種原因,它在每次輸入后都會放置一個 EOF,我不知道如何阻止它這樣做。 提前致謝!!

編輯:

您可能知道它應該是什么樣子,但以防萬一,這就是我想要的輸出:

{
   "1": {
      "Short": "AXSM",
      "Name": "Axsome Therapeutics, Inc.",
      "Price": "81.64",
      "Change": "+34.85"
   },

   "2": {
      "Short": "TSLA",
      "Name": "Tesla, Inc.",
      "Price": "381.44",
      "Change": "+23.05"
   },

   "3": {
      "Short": "CGX.TO",
      "Name": "Cineplex Inc.",
      "Price": "33.83",
      "Change": "+9.82"
   },

   "4": {
      "Short": "MIRM",
      "Name": "Mirum Pharmaceuticals, Inc.",
      "Price": "17.17",
      "Change": "+8.98"
   },

   "5": {
      "Short": "AMGN",
      "Name": "Amgen Inc.",
      "Price": "244.51",
      "Change": "+7.77"
   }
}

您每個numStock寫入一次文件; 也就是說,當您寫入文件時, stocks包含一個項目,即當前的numStock

相反,創建一個包含所有numStock項目的stocks字典,然后將其寫入文件。

暫無
暫無

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

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