使用Python将JSON文件转换为合适的字符串问题

时间:2019-03-08 13:34:19

标签: python json parsing aws-sdk iot

我有一个JSON文件,如下所示:

{  
   "desired":{
        "property1":{  
          "port":"/dev/usbserial",
          "rx":{  
             "watchdoginterval":3600
          },
          "state":{  
             "path":"/Users/user1"
          },
          "enabled":"true",
          "active":{
             "enabled":"true"
          }
       },
       "property2":{  
          "signal_interrupt":"USR2",
          "signal_description_path":"/tmp/logger.log"
       },
       "property3":{  
          "periodmins":40
       },
   }
}

我在尝试将其转换为用于AWS IoT的字符串时遇到问题。我正在使用的功能是deviceShadowHandler.shadowUpdate(JSONPayload, customShadowCallback_Update, 5)

其中JSONPayload应该是JSON字符串。

我尝试过:

with open('JSONfile.json' , 'r') as f:
    dict = json.load(f)

JSONPayload = str(dict)

但是我收到“无效的JSON文件错误”。

尝试从jSON文件中手动创建文字字符串会引起对“扫描字符串文字时出现EOL”等问题的抱怨。

解决此问题的最佳解决方案是什么?我刚接触JSON,东西和Python。

1 个答案:

答案 0 :(得分:0)

Trailing commas are not allowed in JSON

{  
  "desired":{
    "property1":{  
      "port":"/dev/usbserial",
      "rx":{  
       "watchdoginterval":3600
      },
      "state":{  
       "path":"/Users/user1"
      },
      "enabled":"true",
      "active":{
       "enabled":"true"
      }
    },
    "property2":{  
      "signal_interrupt":"USR2",
      "signal_description_path":"/tmp/logger.log"
    },
    "property3":{  
      "periodmins":40
    } # <- no comma there
  }
}