【问题标题】:JSON: Parsing JSON string with json.loads gets error: Expecting , delimiter:JSON:使用 json.loads 解析 JSON 字符串时出现错误:Expecting ,分隔符:
【发布时间】:2017-08-29 14:39:56
【问题描述】:

下面的 JSON 字符串出错: ValueError: Expecting , delimiter: line 1 column ....

{"EndUsrIpAdr":"x.x.x.x","EndUsrBrwsrAgnt":"Mozilla/5.0 (Linux; Android 5.1; Bush Spira E2X 5" Smartphone Build/LMY47D) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.81 Mobile Safari/537.36","ReqOrg":"xxx.com"}

修改E2X 5"为E2X 5即可解决错误。

如何从 E2X 5" 中删除这个 " ,因为如果我使用替换,恐怕它会从 JSON 字符串中删除所有“”。

【问题讨论】:

  • 使用\" 转义它。见docs.python.org/2.0/ref/strings.html
  • 不是手动创建的字符串。数据来自数据库并存储在变量中。
  • 生成 JSON 的任何东西都是错误的,需要修复。
  • 我建议您修复无效 JSON 的来源。要在所有可能出现流氓引号的情况下修复它,您必须首先找到一种模式来识别它。一个例子是不够的。
  • 谢谢 Ryan 和 Klaus D。我也是这么想的。应该修复无效 JSON 的来源。

标签: python json parsing


【解决方案1】:

它是一个无效的 JSON,你可以在这里验证你的 json https://jsonlint.com

您可以使用\" 分隔符添加" 或任何其他转义字符

这是解析儿子的python示例代码

import json
with open("jsonFileName.json") as _fp:
    try:
        _json_data = json.load(_fp)
        # _json_data is a python dict, if everything went correct
    except:
        # error in parsing son
        pass

【讨论】:

    猜你喜欢
    • 2011-12-16
    • 1970-01-01
    • 1970-01-01
    • 2018-04-16
    • 2012-10-04
    • 2017-08-27
    • 1970-01-01
    • 2022-01-01
    • 1970-01-01
    相关资源
    最近更新 更多