簡體   English   中英

使用json.load()加載JSON文件時出現Python Interprter錯誤

[英]Python Interprter error while loading JSON file using json.load()

這是我用於解析JSON文件的python代碼。

import os
import argparse
import json
import datetime


ResultsJson = "sample.json"
try:
    with open(ResultsJson, 'r') as j:
        jsonbuffer = json.load(j)
        result_data = json.loads(jsonbuffer)
        print("Just after loading json")
except Exception as e:
        print(e, exc_info=True)

我收到類似下面快照中的錯誤。 在此處輸入圖片說明

我還附加了我在這里使用的JSON文件“ sample.json”。 sample.json

{
  "idx": 1,
  "timestamp": 1562781093.1182132,
  "machine_id": "tool_2",
  "part_id": "af71ce94-e9b2-47c0-ab47-a82600616b6d",
  "image_id": "14cfb9e9-1f38-4126-821b-284d7584b739",
  "cam_sn": "camera-serial-number",
  "defects": [
    {
      "type": 0,
      "tl": [169, 776],
      "br": [207, 799]
    },
    {
      "type": 0,
      "tl": [404, 224],
      "br": [475, 228]
    },
    {
      "type": 1,
      "tl": [81, 765],
      "br": [130, 782]
    }
  ],
  "display_info": [
    {
      "info": "DEFECT DETECTED",
      "priority": 2
    }
  ]
}

不知道我在這里錯過了什么。 我是Python的新手(來自C ++背景)。 如果我錯過了一些基本的知識,請對我輕松一點。

您不需要此行:

result_data = json.loads(jsonbuffer)

......因為jsonbuffer的結果是json.load ,所以它已經解析JSON文件的結果。 在您的情況下,這是一個Python字典,但是json.loads需要一個字符串,因此會出現錯誤。

同樣,如第二條錯誤消息所述, exc_info不是print功能的有效關鍵字參數。 如果要打印異常,只需執行print(e)

您可以執行以下任一操作:

with open(ResultsJson, 'r') as j:
    result_data = json.load(j)
    print("Just after loading json")

要么:

with open(ResultsJson, 'r') as j:
    result_data = json.loads(j.read())
    print("Just after loading json")

json.load()內部調用json.loads()函數

暫無
暫無

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

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