Ошибка Python Json, ожидается разделитель запятой

Я пробовал много способов, но не уверен, почему возникает эта ошибка. Это небольшой скрипт, который я пробую на SPYDER. Пожалуйста помоги.

      import json

myjson = '''
[
   "details":[
      {
         "MyTable":"NEWTABLE",
         "ReferTo":"Test"
      },
   ]
]
'''
data = json.loads(myjson)  

###  ABOVE LINE IS THROWING ERROR, --->  Expecting ',' delimiter

2 ответа

Решение

Структура данных неверна. это должен быть список диктовок или прямой диктат

Бывший:

      myjson = '''{
   "details":[
      {
         "MyTable":"NEWTABLE",
         "ReferTo":"Test"
      },
   ]
}'''

Или же

      myjson = '''[
    {
    "details":[
        {
            "MyTable":"NEWTABLE",
            "ReferTo":"Test"
        },
    ]}
]'''

import ast
print(ast.literal_eval(myjson))

Списки Python не могут распознать key: value items, чтобы результат, в то время как json пытается декодировать строку, которую он ожидает , после "details" но это становится : вместо этого и бросает JsonDecodeError.

так что либо вы должны использовать наручи {} вместо скобок []:

      myjson = '''
{
    "details":[
        {
            "MyTable":"NEWTABLE",
            "ReferTo":"Test"
        },
    ]
}
'''

или если вы хотите использовать списки, вы должны поместить свои внутренние элементы в словарь:

      myjson = '''
[
  {
    "details":[
        {
            "MyTable":"NEWTABLE",
            "ReferTo":"Test"
        },
    ]
  }
]
'''

тогда вы можете легко использовать json.loads(myjson)

Другие вопросы по тегам