python - Python suds通过soap请求导入pandas获取数据 - 定义列和行
问题描述
我正在使用 suds 从 wsdl 获取数据,并且已成功从相应服务获取数据。现在作为回应,我有以下数据,即“sudsobject”
(rowset){item[] = ](row){]item[] = (column){name = "client_hi"value = "01.129"},(column){name = "vendor_hi"value = "01.199"(column){name = "src_bill_time"value = "1521.37"},},(row){item[] = (column){name = "client_hi"value = "01.129"},(column){name = "vendor_hi"value = None},(column){name = "src_bill_time"value = None},},(row){item[] = (column){name = "client_hi"value = "01.129"},(column){name = "vendor_hi"value = "01.196"},(column){name = "src_bill_time"value = "898.88"},}
现在,我需要一个 Pandas 中的数据框,其中包含“名称”作为列,包含 3 个“行”,每个单元格内都有“值”的数据。
要求的输出:
client_hi,vendor_hi,src_bill_time
1.129,1.199,1521.37
1.129,None,None
1.129,1.196,898.88
另外,我可以将其转换为 json 序列化格式:
{'item': [{'name': 'client_hi', 'value': '01.129'}, {'name': 'vendor_hi', 'value': '01.199'}, {'name': 'src_bill_time', 'value': '1521.37'},]}
{'item': [{'name': 'client_hi', 'value': '01.129'}, {'name': 'vendor_hi', 'value': 'None'}, {'name': 'src_bill_time' , 'value': 'None'},]} {'item': [{'name': 'client_hi', 'value': '01.129'}, {'name': 'vendor_hi', 'value': ' 1.196'}, {'name': 'src_bill_time', 'value': '898.88'},]}
但是,我仍在寻找一种方法来创建一个数据表,该数据表要导入包含在“名称”作为列的熊猫中,包括 3 个“行”,每个单元格内都有“值”的数据。(如上面的“请求输出”)
解决方案
我找到了解决方案。我不得不将 suds 对象转换为 JS 序列号:
def recursive_asdict(d):
"""Convert Suds object into serializable format."""
out = {}
for k, v in asdict(d).items():
if hasattr(v, '__keylist__'):
out[k] = recursive_asdict(v)
elif isinstance(v, list):
out[k] = []
for item in v:
if hasattr(item, '__keylist__'):
out[k].append(recursive_asdict(item))
elif not isinstance(item, list):
out[k] = item
else:
out[k].append(item)
else:
out[k] = v
return out
并给出了问题中提到的格式: {'item': [{'name'... 之后,使用正则表达式,转换为 python 列表,删除一些字符和“值”和“名称”,这给了我以下格式:
[{'client_hi': '01.129','vendor_hi': '01.199' ,src_bill_time', '1521.37',}]
最后使用熊猫
import pandas
df=pd.DataFrame(my_customized_list)
推荐阅读
- c++ - 有没有一种通用的方法来查找任何以空字符结尾的字符串的长度?
- java - 安装eclipse时找不到Java虚拟机
- excel - Excel VB 用户表单有条不紊地完成缺失的数据
- flutter - 在 setState 中使用 Navigator
- java - 在 Websphere 上运行 Project 时找不到要添加到服务器的有效父模块
- python-requests - 使用字典的预算程序
- java - 具有2个数组列表的非递归合并排序
- vba - 获取 Dymo 标签的对象名称
- javascript - Uncaught (in promise) TypeError: cannot read property graphics of undefined
- ios - (目标 C)TABLEVIEW 单元格标识符重要吗?