You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用literal_eval()解析字典字符串时遇前导零语法错误求助

解决literal_eval解析JSON字符串时的SyntaxError问题

问题分析

你遇到的SyntaxError: leading zeros in decimal integer literals are not permitted提示,从提供的字符串看并无明显前导零数字,核心问题是JSON字符串格式不合法:

  • description字段内的转义双引号存在未闭合情况(末尾"Analizar...servicio"缺少闭合引号)
  • 爬取过程可能引入不可见特殊字符或转义处理错误,导致解析器误判内容

解决步骤

1. 修复字符串语法错误

先手动修正description末尾的未闭合引号,将最后一段的...servicio"改为...servicio\\"",确保所有转义引号成对匹配。

2. 用json.loads替代literal_eval

literal_eval对Python语法要求严苛,而json.loads更适配JSON格式解析。若之前使用json.loads失败,先做格式预处理:

import json

# 替换为你实际爬取到的字符串
raw_str = """{"@type":"JobPosting",
"title":"Coordinador de aduanas",
"hiringOrganization":{"@type":"JobPosting",
"name":"Agencia Pública de Empleo",          "sameAs":"https://agenciapublicadeempleo.sena.edu.co",            "logo":"https://agenciapublicadeempleo.sena.edu.co/imgLayout/LOGO%20APE%201.png"},
"workHours":"Se informa el día de la entrevista",
"validThrough":"2022-08-25",
"jobLocation":{"@type":"Place",
"address":{"@type":"PostalAddress",
"addressCountry":"Colombia",
"addressLocality":"Medellín",
"addressRegion":"Antioquia"
}
},
"employmentType":"Indefinido",
"description": "funciones: Firmar documentos de importación y exportación según procesos y políticas de la organización - Asesorar a clientes sobre restricciones de importación y exportación, sistemas tarifarios, cartas de crédito, requisitos para el seguro y otros asuntos aduaneros. - Atender clientes según requerimientos y protocolos de servicio. - Desarrollar la operación de importación y exportación de mercancías según normativa de comercio exterior. - Controlar el proceso de importación y exportación de mercancías según normativa de comercio exterior. - Liquidar impuestos y derechos aduaneros de mercancías según normativa de comercio exterior.Técnico o tecnólogo en comercio exterior. alertar internamente sobre los beneficios que puede adquirir un cliente de acuerdo a lo establecido en la norma y gestionar oportunamente el manejo  Financiero Régimen Aduanero.  importación de vehiculos y autopartes buen manejo ofimatico Habilidades: \" Verificar la documentación y comparar la misma con lo establecido normativamente para alertar sobre documentación faltante o errada.   Diligenciar oportunamente y de forma correcta y precisa las declaraciones   Gestionar documentación faltante con el servicio al cliente Alerta sobre omisiones o faltantes por parte del cliente que afecten el pago del impuesto\" Competencias: \"Analizar la documentación requerida para la nacionalización con el objetivo de proceder en la elaboración detallada de la declaración de importación y del valor, realizar el procedimiento de manera eficiente y eficaz, cumpliendo con los estándares establecidos por Aduanas ML frente a calidad, productividad y servicio\"",
"datePosted":"2022-07-11",
"baseSalary":{"@type":"MonetaryAmount",
"currency":"COP",
"value":{"unitText":"MONTH",
"@type":"QuantitativeValue",
"maxValue":"2000000",
"minValue":"1500001"
}
}
}"""

try:
    job_dict = json.loads(raw_str)
    print("解析成功:", job_dict["title"])
except json.JSONDecodeError as e:
    print(f"解析错误详情:{e}")

3. 优化爬取环节的内容提取

爬取时优先直接提取完整的JSON脚本(比如页面中type="application/ld+json"的<script>标签),避免手动拼接字符串引入格式错误:

from bs4 import BeautifulSoup
import requests
import json

url = "你的目标URL"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")

# 提取结构化JSON数据
json_script = soup.find("script", type="application/ld+json")
if json_script:
    try:
        job_dict = json.loads(json_script.string.strip())
        print(job_dict["description"])
    except json.JSONDecodeError as e:
        print(f"解析失败:{e}")

4. 排查并处理隐藏前导零

若仍出现前导零错误,说明爬取的字符串中存在"0123"这类格式的数字,用正则替换去除前导零:

import re

# 替换字符串中所有带前导零的字符串型数字
fixed_str = re.sub(r'"0+(\d+)"', r'"\1"', raw_str)
job_dict = json.loads(fixed_str)

关键提示

  • 优先使用json.loads处理JSON格式字符串,literal_eval更适合Python原生字面量(如字典、列表的Python代码格式)
  • 爬取结构化数据时,直接提取页面中的JSON脚本标签是最可靠的方式,能避免手动处理转义字符的麻烦

内容的提问来源于stack exchange,提问作者Jack Vaughan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 12:54:23