Python - 数据拆分和提取

时间:2014-07-10 23:58:46

标签: python regex unicode split

我正在使用Twitch API,我在理解如何从中提取数据时遇到了问题。

我调用API,这是我得到的那种响应:

"name":"user1", "game":"game1","name":"user2", "game":"game2"

我知道我需要使用一些.split(),但我无法弄清楚每次尝试时都会得到一个空白输出。

我需要的数据是user1game1user2game2

这些数据重复了几次,我无法找到如何从大量其他数据中提取这些数据。

任何链接或建议都将不胜感激,我找不到像这样的大数据提取的任何参考

修改

在被告知之后是json数据我编辑了代码以适当地解析它。但我一直收到错误:AttributeError: 'unicode' object has no attribute 'get'

以下是代码:

import urllib2
import json

url = "https://api.twitch.tv/kraken/channels/'Mychannel'/follows/"

if __name__ == "__main__":
    req = urllib2.Request(url)
    opener = urllib2.build_opener()
    f = opener.open(req)
    json = json.load (f)

    for item in json:
        print item.get('name')

有关此错误发生原因的任何建议吗?

2 个答案:

答案 0 :(得分:4)

响应是json数据;使用json模块解析它。

答案 1 :(得分:0)

假设您正在接收字符串,例如:

>>> a = '"name":"user1", "game":"game1","name":"user2", "game":"game2"'
>>> a
'"name":"user1", "game":"game1","name":"user2", "game":"game2"'

您可以通过","

进行拆分来获得第一次拆分
>>> mlist = a.split(",")
>>> mlist
['"name":"user1"', ' "game":"game1"', '"name":"user2"', ' "game":"game2"']

现在您可以通过循环访问每个元素的数据:

>>> for e in mlist:
    print("Data:", e.split(":")[1])

('Data:', '"user1"')
('Data:', '"game1"')
('Data:', '"user2"')
('Data:', '"game2"')