我正在使用Python阅读MP3广播流,并打印出类似这样的内容
INXS~Disappear~RADIOSTATION~~MUSIC~~~360000~~~
我想将这些单词分开并将它们放在自己的表格/字段中。
上面是Artist,SongName,RadioStation,MUSIC,有些我不知道它是什么,不会改变的数字。
我发现了一些名为“分裂”的内容,但不确定这是否有效。
我也不确定歌曲或艺术家名称中的空格是否会引起任何问题。这个空间不是一个下划线或任何聪明的东西,它实际上是一个空间。
#!/usr/bin/env python
import urllib2
import datetime
import requests
stream_url = 'http://stream....'
request = urllib2.Request(stream_url)
try:
request.add_header('Icy-MetaData', 1)
response = urllib2.urlopen(request)
icy_metaint_header = response.headers.get('icy-metaint')
if icy_metaint_header is not None:
metaint = int(icy_metaint_header)
read_buffer = metaint+512
content = response.read(read_buffer)
title = content[metaint:].split("'")[1]
print title
# post_data = {'artist':'////', 'songname':'/////'}
# post_response = requests.post(url='http:///////.co.uk', data=post_data)
print datetime.datetime.now()
import json
except:
print 'null'
# print 'Error'
# print datetime.datetime.now()
答案 0 :(得分:2)
您想要使用字符串' NSManagedObjectContext *context = [appDelegate managedObjectContext];
方法:
split
使用python 甚至可以直接将split方法返回的列表元素分配给特定变量:
stream = "INXS~Disappear~RADIOSTATION~~MUSIC~~~360000~~~"
parts = stream.split("~")
我使用了一个简单的列表解析来摆脱列表中的空元素。
您可以使用过滤器内置函数删除空元素,而不是使用列表推导:
artist, songname, radiostation, music, number = [x for x in stream.split("~") if x]
答案 1 :(得分:1)
分割功能将为您完成此操作。有关Python文档中的字符串utils的更多信息
https://docs.python.org/2/library/stdtypes.html#str.split
artist, song_name, radio_station, music, misc_number = string.split("~")
答案 2 :(得分:0)
import re
st = 'INXS~Disappear~RADIOSTATION~~MUSIC~~~360000~~~'
names = ('artist', 'songname', 'radiostatino', 'music', 'number')
pp(list(zip(names,re.split(r'~+',st))))
[('artist', 'INXS'),
('songname', 'Disappear'),
('radiostatino', 'RADIOSTATION'),
('music', 'MUSIC'),
('number', '360000')]