如何将这种结构从API转换为python数据帧

如何将这种结构从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

我从一个API得到了这个结果,但我无法将这个结构转换成python数据帧

来自API的响应

响应={'lists':[{'id':'0d4348d3a7','name':'list one'},{'id':'5e3e22ae7b','name':'list two'}],'total_items':2}

试试看

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字符串的过程?