如何将这种结构从API转换为python数据帧
我从一个API得到了这个结果,但我无法将这个结构转换成python数据帧 来自API的响应 响应={'lists':[{'id':'0d4348d3a7','name':'list one'},{'id':'5e3e22ae7b','name':'list two'}],'total_items':2} 试试看如何将这种结构从API转换为python数据帧,python,dataframe,Python,Dataframe,我从一个API得到了这个结果,但我无法将这个结构转换成python数据帧 来自API的响应 响应={'lists':[{'id':'0d4348d3a7','name':'list one'},{'id':'5e3e22ae7b','name':'list two'}],'total_items':2} 试试看 df = pd.DataFrame(response) print(df) list
df = pd.DataFrame(response)
print(df)
lists total_items
0 {'id': '0d4348d3a7', 'name': 'list one' 2
1 {'id': '5e3e22ae7b', 'name': 'list two... 2
不,这正是我想要的
试试两个
df = json.loads(response)
print(df)
Raise TypeError(f'the JSON object must be str, bytes or bytearray, '
TypeError: the JSON object must be str, bytes or bytearray, not dict
谢谢你所说的数据帧是什么意思?你的意思是一辆汽车吗 您的API响应在我看来就像一个JSON,因此
JSON
应该完成您的工作:
import json
response = "{'lists': [{'id': '0d4348d3a7', 'name': 'list one'}, {'id': '5e3e22ae7b', 'name': 'list two'}], 'total_items': 2}"
dataframe = json.loads(response)
loads表示从字符串加载,请检查以了解更多方法和详细信息。您可能可以使用
json
库:
#!/usr/bin/env python
import json
a = json.loads('{"lists": [{"id": "0d4348d3a7", "name": "list one"}, {"id": "5e3e22ae7b", "name": "list two"}], "total_items": 2}')
print(a['lists'])
但是,如果使用JSON解码器,则API响应应该是JSON格式的,否则将引发JSON.decoder.JSONDecodeError
异常。您发布的内容不是JSON,将引发此异常:我编辑了您的响应文本,以便对其进行解码
如果需要数据帧:
#!/usr/bin/env python
import json
import pandas as pd
a = json.loads('{"lists": [{"id": "0d4348d3a7", "name": "list one"}, {"id": "5e3e22ae7b", "name": "list two"}], "total_items": 2}')
df = pd.DataFrame(data=a['lists'])
print(df)
'''
id name
0 0d4348d3a7 list one
1 5e3e22ae7b list two
'''
您非常接近,只是不要单独传递整个响应json,而只传递所需的值:
>>将熊猫作为pd导入
>>>响应={'lists':[{'id':'0d4348d3a7','name':'list one'},{'id':'5e3e22ae7b','name':'list two'}],'total_items':2}
>>>df=pd.DataFrame(响应[“列表”])
>>>df
身份证名称
0 0d4348d3a7列出一个
1 5e3e22ae7b清单二
如果您证明自己已尝试解决问题,则更有可能获得帮助。为了让你们开始学习,你们可能会发现这个教程很有趣。谢谢Pascal,我试过了,但运气不好,很抱歉没有发布一些代码示例。我正在给你们介绍参考资料。你们如何从你们的例子中得到一个字典列表,如sales=…
?什么是响应[“列表”]
?忽略谈论json
的答案。您的数据结构已经在Python中,因此这不相关。谢谢Marcel,它显示了一个错误raise TypeError(如果JSON对象必须是str、bytes或bytearray,'TypeError:JSON对象必须是str、bytes或bytearray,而不是dictHey Vince,您是否错过了用paranthey围绕JSON字符串的过程?