一个包含字符串的unicode eval

2024-05-29 10:55:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下字符串:
u"['coure', 'explicar', 'nefasta', 'el camió', 'net', 'unir', 'branca', 'educat', tènue, 'hum', 'decisiva', 'avís']"

我需要得到一个字符串数组,但是如果我尝试eval,它会显示SyntaxError: invalid syntax 并且json.loads不要将其识别为需要解析的内容。在

我能做什么?在


Tags: 字符串net数组elavcamihumbranca
2条回答

json.loads要求字符串使用双引号:"..."

您可以将单引号替换为双引号以获得有效的json:

s = u"['coure', 'explicar', 'nefasta', 'el camió', 'net', 'unir', 'branca', 'educat', 'tènue', 'hum', 'decisiva', 'avís']"
s = s.replace("'", '"')
l = json.loads(s)
print(l)
# ['coure', 'explicar', 'nefasta', 'el camió', 'net', 'unir', 'branca', 'educat', 'tènue', 'hum', 'decisiva', 'avís']

但是如果你的任何一句话里有一句话。。。在

正如juanpa.arrivillaga所说,字符串不是有效的Python。在

s = u"['coure', 'explicar', 'nefasta', 'el camió', 'net', 'unir', 'branca', 'educat', tènue, 'hum', 'decisiva', 'avís']"

但您可以使用以下方法将其列为列表:

^{pr2}$

输出:

['coure', 'explicar', 'nefasta', 'el camió', 'net', 'unir', 'branca', 'educat', 'tènue', 'hum', 'decisiva', 'avís']

解释

第一行删除所有这些字符:

  • [
  • ]
  • '

因此只保留逗号和单词字符的空格。第二个方法将字符串分隔为同一列表中的元素。在

注意:当我使用' ,'作为分隔符时,任何元素都不应将其作为子字符串。在


编辑:

我也提出了以下建议:

''.join([char for char in s if char not in "[]')"]).split(', ')

相关问题 更多 >

    热门问题