Преобразование файла JSON в подходящую строковую проблему с Python - PullRequest
0 голосов
/ 08 марта 2019

У меня есть файл 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 голосов
/ 08 марта 2019

Запятые в 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
  }
}
...