将文本字符串转换为数据框-逗号分隔

问题描述 投票:0回答:1

我正在尝试解析API的响应。提取一批电话号码,并返回有关其状态(即有效与否)的信息。

这是响应的样子:

# API call

s.get('https://api/data/stuff')

# response

',MSISDN,Status,Error Code,Error Text,Original Network,Current Network,Current Country,Roaming 
Country,Type,Date Checked\n447541255456,447541255456,Undelivered,27,Absent Subscriber,O2 
(UK),,,,Mobile,Wed Oct  9 2019 12:26:51 GMT+0000 (UTC)\n447856999555,447856999555,Undelivered,1,Dead,O2
 (UK),,,,Mobile,Wed Oct  9 2019 12:26:51 GMT+0000 
(UTC)\n447854111222,447854111222,Undelivered,1,Dead,Orange,,,,Mobile,Wed Oct  9 2019 12:26:51 GMT+0000 
(UTC)\n'

我可以看到MSISDN,Status,Error Code,Error Text,Original Network,Current Network,Current Country,Roaming Country,Type,Date Checked是标题,其余的是行。

但是我无法将其放入易于读取的结构中,例如数据框。

在输入此问题时,有一些建议的答案,它们使用import iopd.read_table等,但我无法使用其中的任何一个。

我想我可以将其另存为txt文件,然后以逗号分隔的csv的形式读回。但是,有没有本土的熊猫或其他更简单的方法来做到这一点?

这里是响应字符串直接粘贴到堆栈溢出中,没有整理:

',MSISDN,Status,Error Code,Error Text,Original Network,Current Network,Current Country,Roaming Country,Type,Date Checked\n447541255456,447541255456,Undelivered,27,Absent Subscriber,O2 (UK),,,,Mobile,Wed Oct  9 2019 12:26:51 GMT+0000 (UTC)\n447856999555,447856999555,Undelivered,1,Dead,O2 (UK),,,,Mobile,Wed Oct  9 2019 12:26:51 GMT+0000 (UTC)\n447854111222,447854111222,Undelivered,1,Dead,Orange,,,,Mobile,Wed Oct  9 2019 12:26:51 GMT+0000 (UTC)\n'
python pandas
1个回答
0
投票

我相信您需要:

from io import StringIO

df = pd.read_csv(StringIO(s.get('https://api/data/stuff')))

或尝试:

df = pd.read_csv('https://api/data/stuff')
© www.soinside.com 2019 - 2024. All rights reserved.