Ошибка 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)