簡體   English   中英

如何用 CSV 字段中的空字符替換雙引號內的雙引號?

[英]How do I replace double quotes inside double quotes with empty character in CSV fields?

我有一個 CSV 文件,每個字段都用雙引號引用。 但是某些字段/字符串本身內部有雙引號,我想從該特定字符串中刪除它們。

例如 - CSV 字段中的字符串之一是“我的名字是“Rajesh”Kumar”。

現在我想將上面的字符串替換為“我的名字是Rajesh Kumar”,恢復外面的雙引號。

我嘗試了下面的代碼,但不幸的是它替換了所有的雙引號。

file_out = csv.writer(open("file", "w"), doublequote=False, escapechar='\\', delimiter=';',quotechar='"')
with open("file", "r") as f:
   content = f.read().replace('"', '')
   reader = csv.reader(StringIO(content), doublequote=False, escapechar='\\', delimiter=';'quotechar='"')
   for row in reader:
      print(row)
      file_out.writerow(row)

您可以替換不包含原始字符串的第一個和最后一個字符的子字符串中的所有引號。

row = "\"My name is \"Rajesh\" Kumar\""
print(row)
row = row[0] + row[1:-1].replace('\"', '') + row[-1]
print(row)

或者

row = "\"My name is \"Rajesh\" Kumar\""
print(row)
row = "\"{}\"".format(row[1:-1].replace('\"', ''))
print(row)

輸出:

"My name is "Rajesh" Kumar"
"My name is Rajesh Kumar"

找到了另一篇基本上涵蓋了所問內容的帖子: 正則表達式替換除了第一個和最后一個字符

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM