我使用内置的json
用于python 2.6。解析像这样的jsons我遇到了很多麻烦:
{
name: 'some name'
value: 'some value'
}
我发现了两个原因 -
'
不起作用。您需要"
"name"
/ "value"
我错过了什么吗?有没有办法使用json
包解析这种字典?有没有其他python包可以解析这个?
由于
答案 0 :(得分:4)
我认为你想要的不是一个“更强大”的解析器,而是一个解析破碎代码的破解者。见the standard
具体地,
对象的键被定义为字符串
字符串被定义为“”或“字符”,其中字符具有非常明显的含义
在互联网上有一些地方可以看到道格拉斯·克罗克福德(Douglass Crockford)就这种情况做出半诙谐的评论。它与非JavaScript语言的兼容性有关。具体来说,你不能拥有
{name :'some name', value: 'some value'}
作为python中的dict,除非name
和some value
存在预先存在的可扩展变量;
破解者一般都很糟糕。只要看看浏览器中破解的HTML解析器所造成的混乱,任何白痴都可以创建一个网站。编写所有这些RFC的那个家伙错了:最好严格遵守你所发布的和你所接受的内容。
答案 1 :(得分:2)
问题不在于Python模块,问题在于你的字符串,它可能是你说的,但不是JSON,所以它不能被JSON解析器解析。
如果它是JSON,它看起来像:
{"name":"some name", "value":"some value"}
因此,它不是Python模块的问题。这就像要求“更强大的python编译器”,因为C-Python无法解析:
using json
json.loads(my_string)
显然第一行只是而不是Python ,所以我们不能要求Python解释它。
现在,如果你想解析那个字符串,我建议你:使它成为一个JSON字符串或使用Pyparsing来编写一个快速而肮脏的解析器(我保证它会比不到50更好地工作)线)。
干杯,
涓。
答案 2 :(得分:0)
有:
(不确定他们是否会解析损坏的JSON。)