【发布时间】:2021-01-25 18:23:16
【问题描述】:
我正在尝试从网站解析 JSON 以提取一些数据。不知何故,JSON 是“组合的”,这意味着描述了一个产品的数据集,而没有分离下一个产品,JSON 只是继续。这会在json.load (python3.8) 中引发错误。
这是有问题的部分:
"name": "30 stk"
}
}
} {
"@type":"Product"
jsonlint 输出如下错误:
Error: Parse error on line 126:
...30 stk" } } } { "@type": "Produc
--------------------^
Expecting 'EOF', '}', ',', ']', got '{'
完整的 JSON:
{"@context":"https://schema.org","@type":"Product","@id":"/antistax-extra-venentabletten-bei-venenleiden-60stk-pzn-00002335","aggregateRating":{"@type":"AggregateRating","ratingValue":"4,8","reviewCount":"26"},"description":"AntistaxextraVenentablettenbeiVenenleiden60stkkaufenbeiderOnlineApothekeapo-discounter.Medikamente,Nahrungsergänzungenuvm.erhaltenSieinunsererVersandapothekezugünstigenPreisen.","name":"AntistaxextraVenentablettenbeiVenenleiden(60stk)","image":"https://www.apodiscounter.de/images/product_images/info_images/00002335_4.jpg","sku":"00002335","mpn":"00002335","productID":"00002335","category":"Venenerkrankung","brand":{"@type":"Organization","name":"Antistax"},"offers":{"@type":"Offer","availability":"https://schema.org/InStock","url":"https://www.apodiscounter.de/antistax-extra-venentabletten-bei-venenleiden-60stk-pzn-00002335","price":"27.49","priceValidUntil":"2021-01-26","priceCurrency":"EUR","category":"Filmtabletten","eligibleQuantity":"60stk","itemCondition":"NewCondition","seller":{"@type":"Organization","name":"apo-discounter.de"}},"issimilarto":[{"@type":"Product","mpn":"00002312","name":"AntistaxextraVenentablettenbeiVenenleiden","url":"https://www.apodiscounter.de/antistax-extra-venentabletten-bei-venenleiden-30stk-pzn-00002312","description":"AntistaxextraVenentablettenbeiVenenleiden30stkkaufenbeiderOnlineApothekeapo-discounter.Medikamente,Nahrungsergänzungenuvm.erhaltenSieinunsererVersandapothekezugünstigenPreisen.","image":"https://www.apodiscounter.de/images/product_images/info_images/00002312.jpg","sku":"00002312","brand":{"@type":"Organization","name":"Antistax"},"aggregateRating":{"@type":"AggregateRating","ratingValue":"5,0","reviewCount":"13"},"review":[{"@type":"Review","author":"ErnaD.","datePublished":"30.10.2020","description":"","name":"","reviewRating":{"@type":"Rating","bestRating":"5","ratingValue":"5","worstRating":"1"}},{"@type":"Review","author":"DomenicaZ.","datePublished":"04.09.2020","description":"","name":"","reviewRating":{"@type":"Rating","bestRating":"5","ratingValue":"5","worstRating":"1"}},{"@type":"Review","author":"RitaS.","datePublished":"11.07.2020","description":"kaumwirksam","name":"","reviewRating":{"@type":"Rating","bestRating":"5","ratingValue":"5","worstRating":"1"}},{"@type":"Review","author":"VerifizierterKunde","datePublished":"10.04.2020","description":"Binnichtganzüberzeugt","name":"","reviewRating":{"@type":"Rating","bestRating":"5","ratingValue":"5","worstRating":"1"}},{"@type":"Review","author":"VerifizierterKunde","datePublished":"06.03.2020","description":"BinpositivüberraschtvondemProdukt","name":"","reviewRating":{"@type":"Rating","bestRating":"5","ratingValue":"5","worstRating":"1"}}],"offers":{"@type":"Offer","availability":"https://schema.org/InStock","url":"https://www.apodiscounter.de/antistax-extra-venentabletten-bei-venenleiden-30stk-pzn-00002312","price":"15.99","priceValidUntil":"2021-01-26","priceCurrency":"EUR","eligibleQuantity":{"@type":"QuantitativeValue","name":"30stk"}}}{"@type":"Product","mpn":"05954715","name":"AntistaxextraVenentablettenbeiVenenschwäche","url":"https://www.apodiscounter.de/antistax-extra-venentabletten-bei-venenschwaeche-90stk-pzn-05954715","description":"AntistaxextraVenentablettenbeiVenenschwäche90stkkaufenbeiderOnlineApothekeapo-discounter.Medikamente,Nahrungsergänzungenuvm.erhaltenSieinunsererVersandapothekezugünstigenPreisen.","image":"https://www.apodiscounter.de/images/product_images/info_images/05954715.jpg","sku":"05954715","brand":{"@type":"Organization","name":"Antistax"},"aggregateRating":{"@type":"AggregateRating","ratingValue":"4,8","reviewCount":"167"},"review":[{"@type":"Review","author":"VerifizierterKunde","datePublished":"05.12.2020","description":"","name":"","reviewRating":{"@type":"Rating","bestRating":"5","ratingValue":"5","worstRating":"1"}},{"@type":"Review","author":"RoswithaT.","datePublished":"23.11.2020","description":"","name":"","reviewRating":{"@type":"Rating","bestRating":"5","ratingValue":"5","worstRating":"1"}},{"@type":"Review","author":"RalfZ.","datePublished":"22.11.2020","description":"Gutundpreiswert!","name":"","reviewRating":{"@type":"Rating","bestRating":"5","ratingValue":"5","worstRating":"1"}},{"@type":"Review","author":"ReinhardS.","datePublished":"22.11.2020","description":"","name":"","reviewRating":{"@type":"Rating","bestRating":"5","ratingValue":"5","worstRating":"1"}},{"@type":"Review","author":"VerifizierterKunde","datePublished":"08.11.2020","description":"WennmanProblememitVenenhatundlangeaufdenBeinenist,hilftesdenTagbesserzumeistern...","name":"","reviewRating":{"@type":"Rating","bestRating":"5","ratingValue":"5","worstRating":"1"}}],"offers":{"@type":"Offer","availability":"https://schema.org/InStock","url":"https://www.apodiscounter.de/antistax-extra-venentabletten-bei-venenschwaeche-90stk-pzn-05954715","price":"33.49","priceValidUntil":"2021-01-26","priceCurrency":"EUR","eligibleQuantity":{"@type":"QuantitativeValue","name":"90stk"}}},{"@type":"Product","mpn":"16156023","name":"AntistaxextraVenentablettenbeiVenenleiden&Venenschwäche","url":"https://www.apodiscounter.de/antistax-extra-venentabletten-bei-venenleiden-venenschwaeche-180stk-pzn-16156023","description":"AntistaxextraVenentablettenbeiVenenleiden&Venenschwäche180stkkaufenbeiderOnlineApothekeapo-discounter.Medikamente,Nahrungsergänzungenuvm.erhaltenSieinunsererVersandapothekezugünstigenPreisen.","image":"https://www.apodiscounter.de/images/product_images/info_images/16156023.jpg","sku":"16156023","aggregateRating":{"@type":"AggregateRating","ratingValue":"5,0","reviewCount":"3"},"review":[{"@type":"Review","author":"IrinaL.","datePublished":"20.01.2021","description":"","name":"","reviewRating":{"@type":"Rating","bestRating":"5","ratingValue":"5","worstRating":"1"}},{"@type":"Review","author":"AlfredS.","datePublished":"20.01.2021","description":"","name":"","reviewRating":{"@type":"Rating","bestRating":"5","ratingValue":"5","worstRating":"1"}},{"@type":"Review","author":"VerifizierterKunde","datePublished":"11.01.2021","description":"","name":"","reviewRating":{"@type":"Rating","bestRating":"5","ratingValue":"5","worstRating":"1"}}],"offers":{"@type":"Offer","availability":"https://schema.org/InStock","url":"https://www.apodiscounter.de/antistax-extra-venentabletten-bei-venenleiden-venenschwaeche-180stk-pzn-16156023","price":"56.49","priceValidUntil":"2021-01-26","priceCurrency":"EUR","eligibleQuantity":{"@type":"QuantitativeValue","name":"180stk"}}}],"review":[{"@type":"Review","author":"KlausS.","datePublished":"11.12.2020","description":"","name":"","reviewRating":{"@type":"Rating","bestRating":"5","ratingValue":"4","worstRating":"1"}},{"@type":"Review","author":"OttiZ.","datePublished":"19.10.2020","description":"Zufrieden","name":"","reviewRating":{"@type":"Rating","bestRating":"5","ratingValue":"5","worstRating":"1"}},{"@type":"Review","author":"MonikaM.","datePublished":"03.09.2020","description":"","name":"","reviewRating":{"@type":"Rating","bestRating":"5","ratingValue":"5","worstRating":"1"}},{"@type":"Review","author":"RitaP.","datePublished":"14.08.2020","description":"","name":"","reviewRating":{"@type":"Rating","bestRating":"5","ratingValue":"5","worstRating":"1"}},{"@type":"Review","author":"VerifizierterKunde","datePublished":"24.07.2020","description":"","name":"","reviewRating":{"@type":"Rating","bestRating":"5","ratingValue":"3","worstRating":"1"}}]}
我怎样才能将这两者分开,或者有这样的功能吗?我试过.split('} {'),但这没有用。
【问题讨论】:
-
请edit您的问题并提供minimal reproducible example和示例JSON输入。
-
我添加了完整的 JSON 字符串
-
@merlin 也许你只是想用
}, {替换} {? -
是的!谢谢!我在第一次尝试时错过了一个空间,然后又走了另一条路。太好了,现在可以使用了。
-
@merlin 好的,我已经更新了我的答案;-)
标签: json python-3.x split