处理字段中冒号分隔对的 CSV

Processing a CSV with colon separated pairs in fields

我有一个

格式的 CSV
Fruit:Apple,Seeds:Yes,Colour:Red or Green
Fruit:Orange,Seeds:No,Colour:Orange
Fruit:Pear,Seeds:Yes,Colour:Green,Shape:Odd
Fruit:Banana,Seeds:No,Colour:Yellow,Shape:Also Odd

我希望能够为这些看起来像

的值创建一个JSON对象
{"requestdata":{
 "testdata":"example",
 "testcategory":"category",
 "fruits":{
          "Fruit":{
                 "value":"Apple"
                 "type":"string"},
           "Seeds":{
                  "value":"Yes"
                  "type":"bool"}
            }

等等

我知道我可以使用我选择的分隔符加载 CSV,但我如何指定第二个分隔符?或者我应该尝试为每个数据单元构建一个字典并将其视为要拆分的字符串?

您应该只在逗号处拆分并使用字符串拆分来处理剩余的元素,构建字典,然后让 json 模块从字典中生成 JSON。尝试巧妙地处理文本时很容易创建格式错误的 JSON,例如

  • 忘记引用键。
  • 引用非本意的值
  • 不转义 JSON 个特殊字符

构建字典然后让 moule 完成它的工作将使您的代码更易于维护并且更不容易出错。