如何将变量内的换行分隔JSON转换为逗号分隔的标准JSON格式
实现方法
首先先修正你示例代码里的语法问题:你给出的内容里用了中文全角引号“”,且"key1":value1"处漏了value1左侧的半角引号,处理前先把这些问题修正为标准英文半角引号,再执行后续操作。
方法1:JavaScript/Node.js环境处理
// 原始内容存在rawStr变量中 const rawStr = `things = [ {"key":"value","key1":"value1"} {"key":"value","key1":"value1"} {"key":"value","key1":"value1"} {"key":"value","key1":"value1"} ]`; // 提取数组内部内容 const arrayContent = rawStr.match(/\[([\s\S]*?)\]/)[1]; // 替换换行后的对象前缀为逗号+换行+对象前缀 const fixedArrayContent = arrayContent.replace(/\n\s*\{/g, ',\n{'); // 拼接为完整标准格式 const finalResult = `things = [${fixedArrayContent}]`; console.log(finalResult);
输出结果为:
things = [ {"key":"value","key1":"value1"}, {"key":"value","key1":"value1"}, {"key":"value","key1":"value1"}, {"key":"value","key1":"value1"} ]
方法2:Python环境处理
raw_str = '''things = [ {"key":"value","key1":"value1"} {"key":"value","key1":"value1"} {"key":"value","key1":"value1"} {"key":"value","key1":"value1"} ]''' import re # 提取数组内部内容 array_part = re.search(r'\[([\s\S]*?)\]', raw_str).group(1) # 替换换行后的对象前缀为逗号+换行+对象前缀 fixed_array = re.sub(r'\n\s*{', ',\n{', array_part) # 拼接为完整结果 final_result = f'things = [{fixed_array}]' print(final_result) # 如果需要直接转为Python对象,可追加以下代码 import json data = json.loads(f'[{fixed_array}]')
方法3:文本编辑器批量修改(适合少量临时处理)
用VS Code、Sublime Text等编辑器直接操作:
- 按下
Ctrl+H(Mac系统为Cmd+H)调出替换面板,开启正则匹配模式 - 查找内容输入
\n\s*{ - 替换内容输入
,\n{ - 点击全部替换即可完成
注意:如果你的数组最后一个元素末尾也带了换行,替换后不会出现多余逗号,不影响JSON解析。
内容的提问来源于stack exchange,提问作者Niels
相关产品推荐
相关产品推荐

