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

如何将JSON数组赋值到单元格字符串?属性名显示异常求助

解决JSON数组赋值到单元格时属性名异常的问题

首先得说,你给的示例数据不是标准JSON格式,这大概率是导致属性名显示异常的根源!它看起来更像是Objective-C里的字典/数组写法(用=代替JSON的:,分号;分隔键值对,数组用()包裹),工具识别不了这种非标准格式,自然会出问题。

第一步:把非标准格式转换成标准JSON

手动调整一下格式就行,规则很简单:

  • 把所有的=替换成:
  • 把分号;替换成逗号,
  • 把数组的()改成[]
  • 给所有属性名、字符串值加上双引号(注意原来的"Free Shipping"已经有引号了,别重复加)

转换后的标准JSON是这样的:

[
  {
    "attribute_group_name": "Color",
    "attribute_name": ["Black", "White", "Gold", "Red"]
  },
  {
    "attribute_group_name": "Service",
    "attribute_name": ["Free Shipping", "Insurance"]
  },
  {
    "attribute_group_name": "Telco",
    "attribute_name": ["Digi", "Maxis", "Celcom"]
  },
  {
    "attribute_group_name": "Material",
    "attribute_name": ["Wood"]
  }
]

第二步:把标准JSON赋值到单元格

根据你用的工具,给你两种常用方案:

方案1:用Excel VBA处理

先确保你导入了JsonConverter模块(网上搜一下就能找到,导入后就能解析JSON了),然后用这段代码:

Sub LoadJSONToCells()
    Dim jsonStr As String
    Dim jsonObj As Object
    Dim i As Integer
    
    ' 把上面的标准JSON字符串放这里
    jsonStr = "[{""attribute_group_name"":""Color"",""attribute_name"":[""Black"",""White"",""Gold"",""Red""]},{""attribute_group_name"":""Service"",""attribute_name"":[""Free Shipping"",""Insurance""]},{""attribute_group_name"":""Telco"",""attribute_name"":[""Digi"",""Maxis"",""Celcom""]},{""attribute_group_name"":""Material"",""attribute_name"":[""Wood""]}]"
    
    ' 解析JSON
    Set jsonObj = JsonConverter.ParseJson(jsonStr)
    
    ' 写表头
    Cells(1, 1).Value = "Attribute Group Name"
    Cells(1, 2).Value = "Attribute Names"
    
    ' 循环写入每一行数据
    For i = 1 To jsonObj.Count
        Cells(i + 1, 1).Value = jsonObj(i)("attribute_group_name")
        ' 把属性数组合并成逗号分隔的字符串,方便单元格显示
        Cells(i + 1, 2).Value = Join(jsonObj(i)("attribute_name"), ", ")
    Next i
End Sub

方案2:用Python + Pandas处理(更简单)

如果你会Python,用Pandas写几行代码就能直接导出到Excel:

import pandas as pd
import json

# 标准JSON数据
json_data = '''
[
  {
    "attribute_group_name": "Color",
    "attribute_name": ["Black", "White", "Gold", "Red"]
  },
  {
    "attribute_group_name": "Service",
    "attribute_name": ["Free Shipping", "Insurance"]
  },
  {
    "attribute_group_name": "Telco",
    "attribute_name": ["Digi", "Maxis", "Celcom"]
  },
  {
    "attribute_group_name": "Material",
    "attribute_name": ["Wood"]
  }
]
'''

# 解析JSON并转成DataFrame
data = json.loads(json_data)
df = pd.DataFrame(data)
# 把属性数组合并成字符串
df['attribute_name'] = df['attribute_name'].apply(lambda x: ', '.join(x))
# 导出到Excel(会生成一个叫attributes.xlsx的文件)
df.to_excel('attributes.xlsx', index=False)

只要先把数据转成标准JSON,再用上面的方法处理,属性名显示异常的问题就能解决啦!

内容的提问来源于stack exchange,提问作者Test 87

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:39:09