如何使用 Python 将 API JSON 数据导出到 CSV 文件
我遇到了一个问题。我通过 API 获得了一些 JSON 格式的数据。
它看起来像这样:
示例:
{"ID":"938","ENTITY_ID":"CRM_DEAL","FIELD_NAME":"UF_CRM_111111111111","USER_TYPE_ID":"enumeration","LIST":\[{"ID":"700","SORT":"10","VALUE":"text1","DEF":"N"},{"ID":"948","SORT":"20","VALUE":"text2","DEF":"N"}\]}
我需要以 CSV 格式输出数据,如下所示:
ID, ENTITY_ID, FIELD_NAME
938, CRM_DEAL, UF_CRM_111111111111, 700, text1
938, CRM_DEAL, UF_CRM_111111111111, 948, text2
请帮助我,我该如何解决这个问题?
我尝试运行此代码:
import requests
import pandas as pd
r = requests.get("https://myrestAPImethod")
df = pd.DataFrame(r)
print(r.text) with open("test.csv", 'w+', encoding='UTF8', newline='') as f:
f.write(r.text)
但我得到了错误的 CSV 文件。
我需要这个:
ID, ENTITY_ID, FIELD_NAME
938, CRM_DEAL, UF_CRM_111111111111, 700, text1
938, CRM_DEAL, UF_CRM_111111111111, 948, text2
但是我
{"ID":"938","ENTITY_ID":"CRM_DEAL","FIELD_NAME":"UF_CRM_111111111111","USER_TYPE_ID":"enumeration","LIST":\[{"ID":"700","SORT":"10","VALUE":"text1","DEF":"N"},{"ID":"948","SORT":"20","VALUE":"text2","DEF":"N"}\]}
在第一个 A1 单元格中有文本(当我用 Excel 打开 CSV 时)。
I faced with a problem. I've got some data in JSON format with API.
It looks like that:
Example:
{"ID":"938","ENTITY_ID":"CRM_DEAL","FIELD_NAME":"UF_CRM_111111111111","USER_TYPE_ID":"enumeration","LIST":\[{"ID":"700","SORT":"10","VALUE":"text1","DEF":"N"},{"ID":"948","SORT":"20","VALUE":"text2","DEF":"N"}\]}
I need to output data in CSV format like this:
ID, ENTITY_ID, FIELD_NAME
938, CRM_DEAL, UF_CRM_111111111111, 700, text1
938, CRM_DEAL, UF_CRM_111111111111, 948, text2
Help me please, how can I solve this problem?
I've tried to run this code:
import requests
import pandas as pd
r = requests.get("https://myrestAPImethod")
df = pd.DataFrame(r)
print(r.text) with open("test.csv", 'w+', encoding='UTF8', newline='') as f:
f.write(r.text)
But I've got wrong CSV file.
I need this:
ID, ENTITY_ID, FIELD_NAME
938, CRM_DEAL, UF_CRM_111111111111, 700, text1
938, CRM_DEAL, UF_CRM_111111111111, 948, text2
But I,ve got text
{"ID":"938","ENTITY_ID":"CRM_DEAL","FIELD_NAME":"UF_CRM_111111111111","USER_TYPE_ID":"enumeration","LIST":\[{"ID":"700","SORT":"10","VALUE":"text1","DEF":"N"},{"ID":"948","SORT":"20","VALUE":"text2","DEF":"N"}\]}
in the first A1 cell (when I open CSV with Excel).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您使用
pandas
将其转换为数据帧。所以现在只需使用 pandas 写入文件:将其扁平化一点:
import pandas as pd
输出:
You converted it to a dataframe with
pandas
. So now just use pandas to write to file:To flatten it out a bit:
import pandas as pd
Output: