我有一個從具有以下格式的 .csv 中提取的字串:
str = "[point, contextual, point]"
我想做的是將其轉換為以下格式的串列:
str = ["point", "contextual", "point"]
我該怎么做?我嘗試過,json.loads(str)但出現錯誤:
json.decoder.JSONDecodeError:期望值:第 1 行第 2 列(字符 1)
uj5u.com熱心網友回復:
試試這個代碼:
string = "[point, contextual, point]"
print(string[1:-1].split(', '))
輸出:
['point', 'contextual', 'point']
告訴我你是否合適...
uj5u.com熱心網友回復:
你可以使用這個運算式: str[1:-1].split(", ")
順便說一句,不建議為變數指定 python 型別的名稱。
uj5u.com熱心網友回復:
你可以使用:
my_str = "[point, contextual, point]"
my_str[1:-1].split(', ') # remove first and last characters ([]) and split on ", "
注意。不要str用作變數名,這會覆寫str
內置
uj5u.com熱心網友回復:
因為那不是有效的 JSON 字串,所以json.loads不起作用。您需要手動執行此操作,并且不能json為您擁有的字串使用模塊。
st = "[point, contextual, point]"
lst = st[1:-1].split(', ')
附帶說明,不要str用作變數:那是內置的
uj5u.com熱心網友回復:
你可以試試這個:
>>> st = "[point, contextual, point]"
>>> st[1:-1]
[point, contextual, point]
>>> st[1:-1].split(',')
['point', ' contextual', ' point'] # <- you have space
>>> list(map(lambda x: x.strip(), st[1:-1].split(',')))
['point', 'contextual', 'point']
為什么不split(', ')呢?
>>> st = "[point, contextual, point]"
>>> st[1:-1].split(', ')
['point', ' contextual', ' point']
>>> list(map(lambda x: x.strip(), st[1:-1].split(',')))
['point', 'contextual', 'point']
uj5u.com熱心網友回復:
我建議你使用yaml:
import yaml
s = "[point, contextual, point]"
s = yaml.load(s, Loader=yaml.FullLoader)
print(s)
輸出
['point', 'contextual', 'point']
筆記:
yaml 是安裝它的第三方模塊(在命令列中):
pip install pyyaml
上面代碼片段的 yaml 版本是 5.4.1
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/321776.html
