json.dump() 在python字典中添加双引号时添加反斜杠

问题描述 投票:0回答:1

我正在从 Excel 中读取数据,其中包含 proxy 作为包含多值的字段,即。 prooxy --> ABC-123,PQR-456(数据以逗号分隔)

我的任务是读取数据并将这些数据转换为json。

这段代码的一部分看起来像 -

def _get_gateway_section(self, device):
   abc=device[self._asset_columns.GATEWAY_PROXY_ID].split(',')
   abc="\",\"".join(abc)
   #abc='"'+abc+'"'
   print(abc)
   return {
        "gateway": {
            #"gateway_id": device[self._asset_columns.GATEWAY_ID]
            "proxy_ids": [abc]
        
           }
       }

此文件已创建

def _save_to_json(self, content, path):
    cnt=json.dumps(content, indent=2, separators=(",", ":"), ensure_ascii=True)
    #print(cnt)
    with open(path, "w") as output:
      output.write(cnt)

我得到这样的输出 -

 "gateway":{
    "proxy_ids":[
      "AHU-123\",\"AHU-122"
    ]
  }
}

我的输出中不需要这个反斜杠-

输出应类似于 -

{
"gateway":{
    "proxy_ids":[
      "AHU-123","AHU-122"
    ]
  }
} 

我尝试过以下事情

  1. 在添加双引号之前使用反斜杠 for
  2. 尝试过三重引号
  3. json.dumps, json.dump(json.loads) 尝试了堆栈溢出的解决方案,但没有成功。

提前致谢!!!.

json python-3.x dictionary special-characters double-quotes
1个回答
0
投票

这里多值,即 proxy --> ABC-123,PQR-456 将是字符串

abc = "ABC-123,PQR-456".split(",") 给出一个列表,其中 ["ABC-123", "PQR-456"] 可以直接使用。

 def _get_gateway_section(self, device):
     abc=device[self._asset_columns.GATEWAY_PROXY_ID].split(',')
     return {
           "gateway": {
                  #"gateway_id": device[self._asset_columns.GATEWAY_ID]
                  "proxy_ids": abc
    
            }
         }

请解释 abc="","".join(abc) 的需要,并尝试了上述解决方案

© www.soinside.com 2019 - 2024. All rights reserved.