python - 将文本字符串转换为数据框 - 逗号分隔
问题描述
我正在尝试解析 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'
解决方案
我相信你需要:
from io import StringIO
df = pd.read_csv(StringIO(s.get('https://api/data/stuff')))
或尝试:
df = pd.read_csv('https://api/data/stuff')
推荐阅读
- bamboo - Bamboo:如何运行 xunit 测试(脚本任务),然后将其提供给“xunit 解析器”
- ios - 如何在 Swift 中构建 React Native 包?
- node.js - 如果文件不存在,child_process nodejs 不会触发错误
- python - 如何写附件数据?
- file - Linux - client_body_in_file_only - 如何为临时文件设置文件权限?
- node.js - 我无法获得新的连接
- bokeh - 散景:如何在图例中同时显示颜色和标记类型
- javascript - 表单验证完成后显示模式的 Jquery 代码
- c# - Linq - 在选择中使用查询作为函数
- php - 如何按小时而不是按天制作 Laravel 日志文件?