[英]How to convert comma separated string to list that contains comma in items in Python?
我有一個用逗號分隔的項目的字符串。 每個項目都用引號 (") 括起來,但項目也可以包含逗號 (,)。因此使用split(',')
會產生問題。
如何在 Python 中正確拆分此文本?
"coffee", "water, hot"
["coffee", "water, hot"]
謝謝!
您可以拆分包含多個字符的分隔符。 '"coffee", "water, hot"'.split('", "')
給出['"coffee','water, hot"']
。 從那里您可以刪除初始和終止引號。
import ast
s = '"coffee", "water, hot"'
result = ast.literal_eval(f'[{s}]')
print(result)
您可以使用re.findall
import re
s = '"coffee", "water, hot"'
re.findall('"(.*?)"', s) # ['coffee', 'water, hot']
您幾乎可以為此使用 csv :
import csv
from io import StringIO
sio = StringIO()
sio.write('"coffee", "water, hot"')
sio.seek(0)
reader = csv.reader(sio)
print(next(reader))
# Prints ['coffee', ' "water', ' hot"']
問題是“水,熱”的開場白之前有一個空格。 如果將'", "'
替換為","
,則 csv 將起作用,您將獲得['coffee', 'water, hot']
。
首先,我定義了一個 function 'del_quote' 來刪除不必要的引號和空格。 然后我將它拆分為 '",' 作為分隔符。然后將結果映射為刪除引號,然后轉換為列表。
def del_quote(s):
return s.replace('"','').strip()
x='"coffee", "water, hot"'
result=list(map(del_quote,x.split('",')))
print(result)
怎么樣:
string = '"coffee", "water, hot"'
stringList = string.split("'")
string = stringList[0]
print(string)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.