python:除了内置的json之外,还有更强大的json版本吗

python:除了内置的json之外,还有更强大的json版本吗,python,json,Python,Json,我为python 2.6使用内置的json。我在解析JSON时遇到了很多麻烦,如下所示: { name: 'some name' value: 'some value' } 我发现了两个原因- “不起作用。您需要“ 字典的键必须是字符串。例如“name”/“value” 我遗漏了什么吗?有没有一种方法可以使用json包解析这种字典?有没有其他python包可以解析这种字典 谢谢我认为您需要的不是一个“更强”的解析器,而是一个可以解析坏代码的坏解析器。请参阅 具体来说, 对象的键被定义为字

我为python 2.6使用内置的
json
。我在解析JSON时遇到了很多麻烦,如下所示:

{
 name: 'some name'
 value: 'some value'
}
我发现了两个原因-

  • 不起作用。您需要
  • 字典的键必须是字符串。例如
    “name”
    /
    “value”
  • 我遗漏了什么吗?有没有一种方法可以使用
    json
    包解析这种字典?有没有其他python包可以解析这种字典


    谢谢

    我认为您需要的不是一个“更强”的解析器,而是一个可以解析坏代码的坏解析器。请参阅

    具体来说,

    • 对象的键被定义为字符串

    • 字符串被定义为“”或“chars”,其中chars的含义非常明显

    在互联网上的某个地方,你可以看到道格拉斯·克罗克福德(Douglass Crockford)半机智地评论为什么会出现这种情况。但这与非javascript语言的兼容性有关。具体来说,你不可能做到

    {name :'some name', value: 'some value'} 
    
    作为python中的dict,除非
    name
    some value
    中预先存在的可散列变量


    坏的解析器通常是不好的。看看浏览器中坏的HTML解析器造成的混乱,任何傻瓜都可以在那里创建一个网站。那个写了所有RFC的家伙犯了错误:最好对你发出的和接受的严格要求。

    我认为你想要的不是“更强的”“语法分析器,但它是一个断开的语法分析器,将解析断开的代码。看

    具体来说,

    • 对象的键被定义为字符串

    • 字符串被定义为“”或“chars”,其中chars的含义非常明显

    在互联网上的某个地方,你可以看到道格拉斯·克罗克福德(Douglass Crockford)半机智地谈论为什么会出现这种情况。不过,这与与与非javascript语言的兼容性有关。具体来说,你不可能

    {name :'some name', value: 'some value'} 
    
    作为python中的dict,除非
    name
    some value
    中预先存在的可散列变量

    一般来说,坏的解析器是不好的。只要看看浏览器中破损的HTML解析器所造成的混乱,任何傻瓜都可以在那里创建一个网站。写这些RFC的那个家伙搞错了:最好严格控制你的排放量和接受量。

    有:

    • ,即“是Python 2.6和Python 3.0中包含的json库的外部维护开发版本,但保持了与Python 2.5的向后兼容性。”
    (不确定他们是否会解析断开的JSON。)

    有:

    • ,即“是Python 2.6和Python 3.0中包含的json库的外部维护开发版本,但保持了与Python 2.5的向后兼容性。”

    (不确定他们是否会解析断开的JSON。)

    问题不在于Python模块,而在于您的字符串,它可以是您所说的任何内容,但不是JSON,因此JSON解析器无法解析它

    如果它是JSON,则看起来像:

    {"name":"some name", "value":"some value"}
    
    因此,Python模块没有问题。这就像要求一个“更强的python编译器”,因为C-python无法解析:

    using json
    json.loads(my_string)
    
    显然,第一行只是而不是Python,因此我们不能要求Python解释它

    现在,如果您想解析该字符串,我建议您:将其设置为JSON字符串,或者用于编写快速而脏的解析器(我保证它在不到50行的时间内工作得很好)

    干杯


    Juan。

    问题不在于Python模块,而在于字符串,它可以是您所说的任何内容,但不是JSON,因此JSON解析器无法解析它

    如果它是JSON,则看起来像:

    {"name":"some name", "value":"some value"}
    
    因此,Python模块没有问题。这就像要求一个“更强的python编译器”,因为C-python无法解析:

    using json
    json.loads(my_string)
    
    显然,第一行只是而不是Python,因此我们不能要求Python解释它

    现在,如果您想解析该字符串,我建议您:将其设置为JSON字符串,或者用于编写快速而脏的解析器(我保证它在不到50行的时间内工作得很好)

    干杯


    Juan。

    根据这个()的说法,您首先拥有的不是JSON。你从哪里得到的?S.Lott说得对,这显然不是JSON。如果在条目之间添加逗号,则为JavaScript文本。类似,在添加逗号后,接受的答案(demjson)将对其进行解析。提示:如果他们能把json搞得如此糟糕,他们可能做不到什么正确的事情。那么,你的任务是问他们它如何符合上面描述的标准。根据这个()的说法,你拥有的不是json。你从哪里得到的?S.Lott说得对,这显然不是JSON。如果在条目之间添加逗号,则为JavaScript文本。类似,在添加逗号后,接受的答案(demjson)将对其进行解析。根据他们的说法,这是json。提示:如果他们能把json搞得如此糟糕,他们可能做得不太好。那么,你的任务是问他们它如何符合上面描述的标准。完全同意-看看web浏览器接受的不符合HTML所造成的混乱!现在你必须付出十倍的努力才能让一个简单的页面在不同的浏览器中显示相同的内容。完全同意——看看网页浏览器所接受的不兼容HTML所造成的混乱吧!现在你必须加倍努力才能让一个简单的页面在不同浏览器中显示相同的内容。