gpt4 book ai didi

Python//Pandas - 从 API 获取 json 并转换为数据帧

转载 作者:行者123 更新时间:2023-12-02 03:46:34 25 4
gpt4 key购买 nike

我正在使用此 API 来获取公司数据:https://github.com/vkruoso/receita-tools

在这里你可以看到注册表是如何出现的(看起来像一个json结构):https://www.receitaws.com.br/v1/cnpj/27865757000102

我可以使用以下方式下载它:

cadastro = os.system("curl -X GET https://www.receitaws.com.br/v1/cnpj/27865757000102"

如果我运行type(cadastro),它会向我显示class 'int'。我想把它变成一个数据框。我怎样才能做到这一点?

最佳答案

os.system 返回退出代码而不是数据。您应该使用子进程,请参阅 Assign output of os.system to a variable and prevent it from being displayed on the screen .

如果您使用的是 python 3.5+,则应该使用 subprocess.run()

import subprocess
import json
import pandas as pd

proc = subprocess.run(["curl", "-X", "GET",
"https://www.receitaws.com.br/v1/cnpj/27865757000102"],
stdout=subprocess.PIPE, encoding='utf-8')

cadastro = proc.stdout
df = pd.DataFrame([json.loads(cadastro)])

否则,使用subprocess.Popen()

import subprocess
import json
import pandas as pd

proc = subprocess.Popen(["curl", "-X", "GET",
"https://www.receitaws.com.br/v1/cnpj/27865757000102"],
stdout=subprocess.PIPE)

cadastro, err = proc.communicate()
df = pd.DataFrame([json.loads(cadastro)])

或者,您可以使用 Requests library .

import json
import requests
import pandas as pd

response = requests.get("https://www.receitaws.com.br/v1/cnpj/27865757000102")
data = json.loads(response.content.decode(response.encoding))
df = pd.DataFrame([data])

关于Python//Pandas - 从 API 获取 json 并转换为数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46537266/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com