python - 如何修复混合 JSON 编码字符串

标签 python ruby json string

我面临以下问题。我有 JSON 字符串,其中内部数组/对象有时被写为转义字符串,有时则不是。例如我有

{ "author": "Jack",
  "meta": ["a", "b"]}

还有一个不好的:

{ "author": "Jack",
  "meta": "[\"a\", \"b\"]"}

如果我解析后一个,我只会得到元属性的字符串。可以通过 JSON 解析器再次传递元属性来修复此问题。然而,问题是,如果我通过 JSON.parse (Ruby) 或 JSON.load (Python) 传递它,那么也许我没有处理转义字符串,但也许一个简单的数字“15.3”。这会导致错误。

那么如何智能检测该值是否是需要再次经过 JSON.parse 的值呢?简单地 try catch 这种情况?

最佳答案

这实际上取决于您正在处理的双编码数据的类型,但测试第一个字符可能就足够了。如果它是 [{ 那么您可以尝试使用 JSON 对其进行解码,如果成功,则将其替换。

关于python - 如何修复混合 JSON 编码字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16022990/

相关文章:

ruby - 重构 If 语句以减少 Ruby 中的冗长

javascript - 从本地文件系统加载 JSON 文件时出现 "Unexpected end of JSON input"错误

javascript - 如何从外部文件 JSON 创建 JAVASCRIPT ARRAY

python - 如何在Python中调用字典中的函数

ruby - 在 ruby​​ 模型中设置日期格式(sinatra/datamapper)

ruby - 使用 Ruby 和 Pandoc 将 Markdown 文本转换为 RTF?

node.js - 如何访问json对象数组中的optionsArray

python - Eclipse、PyDev 语法着色

python - 使用 Scrapy 在 Craigslist 上进行递归抓取

python - 计算一系列值变化的次数