如何在Python中从JSON提取字符串生成管道符分隔的可迭代可变对象
解决方案
你要的效果可以分两步实现,Python原生的列表完全满足「可变、可迭代」的要求,管道分隔的格式可以在需要输出的时候再生成,不需要在存入数据的时候处理。
原代码的问题
你写的示例代码有两个明显错误:
for i in len(db["stringLocation"])写法非法,len()返回的是整数,不能直接迭代,需要套一层range()- 列表的
append()方法仅接受1个参数,没有sep参数,运行会直接抛出类型错误
正确实现代码
import json with open("some.json", encoding="utf-8") as f: db = json.load(f) # 字符串存入列表,列表天然支持可变性(增删改)、可迭代性 strings = [] for item in db["stringLocation"]: current_str = item["str"] strings.append(current_str) # 按需生成管道分隔的格式 # 1. 纯管道分隔字符串:string0|string1|string2 pipe_str = "|".join(strings) # 2. 你示例中带方括号、引号的格式:["string0" | "string1" | "string2"] formatted_str = f'[ {" | ".join(f'"{s}"' for s in strings)} ]'
补充说明
- 如果需要修改内容,直接操作
strings列表即可:新增元素用strings.append("新字符串"),删除用strings.pop(索引),修改元素用strings[索引] = "替换值" - 如果需要遍历所有字符串,直接用
for s in strings循环即可
内容的提问来源于stack exchange,提问作者Bucephalus
相关产品推荐
相关产品推荐

