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

2024-06-02 05:19:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个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物联网使用。我使用的函数是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 while scanning string literal”等抱怨而变得混乱

解决这个问题最好的办法是什么?我不熟悉JSON和Python。你知道吗


Tags: 文件path字符串devjsontruesignalport
1条回答
网友
1楼 · 发布于 2024-06-02 05:19:13

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
  }
}

相关问题 更多 >