Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
要从python中的字符串中拆分产品名称和评级吗_Python_String - Fatal编程技术网

要从python中的字符串中拆分产品名称和评级吗

要从python中的字符串中拆分产品名称和评级吗,python,string,Python,String,我想把这根线和其他许多类似的线分开。它们都是关于产品及其评级的信息,前面是产品名称,后面是评级 “Moooni现代矩形雨滴水晶枝形吊灯天花板照明设备矩形吊灯嵌入式LED灯,适用于餐厅L 40x W 12x H 31.54.8/5” 每种产品的评级都不一样,所以我必须这样划分: actual rating = float() for price in catalogue: priceslicer = price.split("{actualrating} out of 5&quo

我想把这根线和其他许多类似的线分开。它们都是关于产品及其评级的信息,前面是产品名称,后面是评级

“Moooni现代矩形雨滴水晶枝形吊灯天花板照明设备矩形吊灯嵌入式LED灯,适用于餐厅L 40x W 12x H 31.54.8/5”

每种产品的评级都不一样,所以我必须这样划分:

actual rating = float()
for price in catalogue:
    priceslicer = price.split("{actualrating} out of 5")
    pr1 = priceslicer[0]
    pr2 = priceslicer[1]

但是,正如您所看到的,这对于上面的字符串来说是一个问题,在这些字符串中,检查就在一些数字之后。如何拆分字符串以获得实际评级(5分之4.8),而不是“31.54.8”中的错误?

您从哪里获得字符串?如果它来自数据库,您可以在所述数据库中为它们分配不同的字段。还是从一个列表中?若它来自一个列表,你们可以考虑使用列表中的列表吗? e、 g


我在过去的一个项目中就这样做过,效果非常好。

首先,检查数据来源,如果你能按照上面的建议找到解决方法,那就是你最好的选择。其次,如果您无法控制,并且您确定您的行以“out of 5”结尾,并且您的评分从0.0到9.9,那么您可以使用下面的正则表达式

import re
re.search(r"(\d(.\d)?) out of 5$", s)

这看起来像是来自网页抓取的数据!如果是这样,有一种方法可以允许中断,`或
`。是从网页抓取的文字吗?是的,你完全正确。我是来自亚马逊的网络垃圾,我想把这些名字从他们各自的评论中分离出来。我怎么能用休息来做这个呢?在你得到文本的地方。不要只使用
.text
使用
.get_text(strip=True,separator='')
这是一条要求澄清的注释,而不仅仅是答案是的,我的字符串来自列表。执行上述方法、迭代多个字符串的代码是什么?我在列表中有很多字符串,我需要为所有字符串执行此操作。
import re
re.search(r"(\d(.\d)?) out of 5$", s)