Excel中双引号问题
背景:
从Excel中读取数据时,发现有的单元格读出来是一个双引号,有的是一个双引号
"{
""accountName"": ""全字段"",
""accountState"": ""NORMAL"",
""isCredit"": true,
""owerType"": ""GUESTROOM_ORDER"",
""pageNo"": 1,
""pageSize"": 3,
""parentAccountId"": 2
}"
{"id": 2435}
原因
Excel 中复制的数据是一个 JSON 对象,但是由于 Excel 的处理方式,JSON 字符串中的双引号 (“) 被替换成了两个双引号 (”")。这是因为在 CSV 和一些其他文本格式中,双引号被用来转义字段内的引号字符。
要将这个字符串转换为正确的 JSON 格式,你需要将多余的双引号移除,使得每个引号只出现一次。
影响
将数据转换成json对象时,会出现报错
Traceback (most recent call last):
File "D:\Miniconda3\lib\code.py", line 63, in runsource
code = self.compile(source, filename, symbol)
File "D:\Miniconda3\lib\codeop.py", line 153, in __call__
return _maybe_compile(self.compiler, source, filename, symbol)
File "D:\Miniconda3\lib\codeop.py", line 73, in _maybe_compile
return compiler(source, filename, symbol)
File "D:\Miniconda3\lib\codeop.py", line 118, in __call__
codeob = compile(source, filename, symbol, self.flags, True)
File "<input>", line 1
json.loads("{
^
SyntaxError: unterminated string literal (detected at line 1)
修复
# 修复 JSON 字符串
corrected_json_str = excel_json_str.replace('""', '"')