Python提取动态文本格式的文本数据

标签 python string split

我有非常大的文本文件,其格式如下:

items=item1|item2|item3|item4&ids=18|117|34|315&locations=5|26|9|12#Characteristic_1#Describe Characteristic_1#http://example.com
items=item1|item2|item3|item4&ids=18|117|34|315&locations=5|26|9|12#Characteristic_2#Describe Characteristic_2#http://example.com
items=item1|item2|item3|item4&ids=18|117|34|315&locations=5|26|9|12#Characteristic_3#Describe Characteristic_3#http://example.com

项目、id 和位置的数量不固定,上面有 4 个值,但也有 1,2,3 或 5, 6 值,如下例所示:

items=item1&ids=18&locations=5#Characteristic_1#Describe Characteristic_1#http://example.com
items=item1|item2&ids=18|117&locations=5|26#Characteristic_1#Describe Characteristic_1#http://example.com
items=item1|item2|item3&ids=18|117|34&locations=5|26|9#Characteristic_3#Describe Characteristic_1#http://example.com

我想从这些数据中获取的是项目名称及其 ID,还有它的位置。像下面的格式:

item1,18,5
item2,117,26
item3,34,9
item4,315,12

我尝试使用 split("|") 函数从字符串中获取值,但我不明白:

  1. 如何处理字符串中存在的动态项目数
  2. 如何相应地相互匹配值。

任何帮助将不胜感激。

谢谢。

最佳答案

>>> s = "items=item1|item2|item3&ids=18|117|34&locations=5|26|9#Characteristic_3#Describe Characteristic_1#http://example.com"

获取一个参数的值:

用“&”分割并获取第一个参数。

>>> s.split('&')[0]
'items=item1|item2|item3'

用“=”拆分并获取值并删除键(即“项目”)

>>> s.split('&')[0].split('=')[1]
'item1|item2|item3'

用“|”分割该值

>>> s.split('&')[0].split('=')[1].split('|')
['item1', 'item2', 'item3']

类似地,您可以获得其他参数的值:

>>> s.split('&')[1].split('=')[1].split('|') # Notice the [1] in the first split
['18', '117', '34']

然后您只需按照您喜欢的方式组合这些多个列表即可。

关于Python提取动态文本格式的文本数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11767401/

相关文章:

python - 有条件地改变特定单元格的背景颜色

Java将字符串转换为枚举列表

linux - 从文本文件中分割记录 block

java - 读取字符串直到空格然后拆分 - Java

javascript - 在 Javascript 中最近的空间拆分文本/字符串

python - 在 Python 中递归生成 n 个阶乘的列表

python - 操作系统错误 : [Errno 19] Failed to open the uinput device: No such device

c# - 从 URL 获取主机域?

python - 如何让 Vim 记住 Python 中定义的变量?

php - 获取带空格的变量