【问题标题】:How to parse string into an array of objects?如何将字符串解析为对象数组?
【发布时间】:2020-10-25 04:52:32
【问题描述】:

我有一个 python 应用程序,它以这样的字符串格式向我的节点 js 应用程序发送一个奇怪的对象数组:

"[{'foo':'bar'},{'hello':'world'}]"

我正在尝试使用 JSON.parse() 解析它,但出现错误:

SyntaxError: Unexpected token ' in JSON at position 1

在 python 端,该数组被识别为真正的数组列表,但是当我使用 python shell 将它传递给 nodejs 时,它变成了一个字符串化的对象数组。

有什么解析它的建议吗?

【问题讨论】:

  • 修复您的 Python 应用程序,使其改为发送正确的 JSON
  • 我认为我的 python 应用程序没有问题我在发送我的 json 之前使用带有 json.loadsjson.dumps 的本机 json 模块
  • 您发布的字符串不是有效的 JSON。查看生成此响应的 Python 代码并解决其中的任何问题会有所帮助。

标签: python arrays json


【解决方案1】:

JSON.parse() 不接受单引号作为字符串边界。这个字符串,使用双引号,工作正常:

console.log(JSON.parse('[{"foo":"bar"},{"hello":"world"}]'));

如果无法更改 Python 应用,可以在 JSON 解析字符串之前将单引号替换为双引号。

【讨论】:

    【解决方案2】:

    使用 json.load() 怎么样?

    import json
    inp = "[{'foo':'bar'},{'hello':'world'}]"
    
    a = json.loads(inp.replace("'",'"'))
    
    print(a)
    

    输出(字典列表):

    [{'foo': 'bar'}, {'hello': 'world'}]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多