2016-01-20 2 views
1

Я пытаюсь декодировать строку json с использованием библиотеки demjson, и я получаю сообщение об ошибке - «JSONDecodeError: значения должны быть разделены запятой ». Я отказываюсь от веб-сайта с использованием рамки python scrapy, и я беру строку json из исходного кода, используя регулярное выражение, и это строка json, которую я хочу декодировать.Python Scrapy получение ошибки JSONDecodeError: значения должны быть разделены запятой при декодировании строки json

{ 
    'customerId':'', 
    'productTitle':"Art & Funclay" Length 8cm. 12 Sticks", 
    'price': '135', 
    'categoryId': 'test', 
    'availability': 'test', 
    'sku':'BPSIM00140', 
    'departmentName': "test", 
    'categoryName': "a", 
    'subCategoryName': "test", 
    'brandName':"test", 
    'pageURL':"test" 
} 

Я надеюсь, что ошибка из-за дополнительный «в„productTitle“:» Искусство & Funclay «Длина 8 см 12 Палочка.». Итак, как декодировать строку json?

Заранее спасибо

+0

Не могли бы вы разместить ссылку на конечную точку, которая возвращает это в ответе? Или, поделитесь полным кодом, который у вас есть. – alecxe

+0

Если я вставляю фрагмент JS в мою консоль (Chrome), я получаю «SyntaxError: Неожиданный токен:'. Создает ли исходная веб-страница отлично, без ошибки консоли в вашем браузере? –

+0

'demjson.decode (r '' Art & Funclay \" Length 8cm. 12 Sticks "')' работает. 'Demjson.decode (r' 'Art & Funclay« Длина 8 см. 12 палочек »)' не –

ответ

1
s = """ 
{ 
    'customerId':'', 
    'productTitle':"Art & Funclay" Length 8cm. 12 Sticks", 
    'price': '135', 
    'categoryId': 'test', 
    'availability': 'test', 
    'sku':'BPSIM00140', 
    'departmentName': "test", 
    'categoryName': "a", 
    'subCategoryName': "test", 
    'brandName':"test", 
    'pageURL':"test" 
} 
""" 
s = re.sub(r"'productTitle':\s*\"(.+?)\",", "'productTitle': '\\1',", s) 
json_obj = demjson.decode(s) 
+0

Спасибо, он сработал. –