簡體   English   中英

如何將逗號分隔的字符串轉換為 Python 中的項目中包含逗號的列表?

[英]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.

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