我正在尝试解析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 io
和pd.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'
答案 0 :(得分:4)
我相信您需要:
from io import StringIO
df = pd.read_csv(StringIO(s.get('https://api/data/stuff')))
或尝试:
df = pd.read_csv('https://api/data/stuff')