Python3如何提取列表中位置可变的所有order_id数值
提取所有order_id数值的解决方案
嘿,这个问题我之前也碰到过!用split确实不太靠谱,毕竟order_id的位置可能变化,而且字符串里万一有其他类似的内容,很容易提取错误。其实你的输入是标准的JSON格式,直接用Python的json模块来解析是最稳妥的办法,能轻松提取所有order_id的值。
方法步骤:
- 首先用
open读取文件内容,通过json.load()把文件解析成Python可操作的列表/字典结构 - 遍历
data列表中的每一个订单对象,提取对应的order_id字段 - 把所有提取到的order_id收集到一个列表中
完整代码示例:
import json # 安全读取文件并解析JSON with open("你的文件名.json", "r", encoding="utf-8") as file: order_data = json.load(file) # 用列表推导式快速提取所有order_id all_order_ids = [order["order_id"] for order in order_data["data"]] # 输出结果 print("所有订单ID:", all_order_ids)
如果是直接处理字符串(比如你给出的示例字符串):
如果你的数据是已经读取到内存中的字符串,用json.loads()解析即可:
import json # 示例JSON字符串 sample_str = '{"data":[{"order_id":744152,"pedido_venda":"Z921211","supplier_id":11042},{"order_id":744153,"pedido_venda":"Z921212","supplier_id":11043}]}' # 解析字符串 order_data = json.loads(sample_str) # 提取order_id all_order_ids = [order["order_id"] for order in order_data["data"]] print(all_order_ids) # 输出: [744152, 744153]
为什么不推荐用split?
- 当order_id在字典中的位置变化时,split的索引会失效
- 如果字符串中其他字段的值包含"order_id:"(比如某个备注字段),split会提取错误的内容
- JSON解析是专门处理这种结构化数据的方式,可靠性和可维护性都远高于字符串分割
内容的提问来源于stack exchange,提问作者Mario
相关产品推荐
相关产品推荐

