在Python3.7中处理JSON

2024-09-24 00:31:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是Python3.7,我试图处理从网站收到的一些JSON数据。下面是JSON响应的示例,但其长度可能有所不同。本质上,它返回有关“官员”的详细信息,在下面的示例中,有两名官员的数据。这是使用OpenCorporatesAPI

{"api_version":"0.4","results":{"page":1,"per_page":30,"total_pages":1,"total_count":2,"officers":[{"officer":{"id":212927580,"uid":null,"name":"NEIL KIDMAN","jurisdiction_code":"gb","position":"director","retrieved_at":"2015-12-04T00:00:00+00:00","opencorporates_url":"https://opencorporates.com/officers/212927580","start_date":"2015-01-28","end_date":null,"occupation":"SERVICE MANAGER","current_status":null,"inactive":false,"company":{"name":"GRSS LIMITED","jurisdiction_code":"gb","company_number":"09411531","opencorporates_url":"https://opencorporates.com/companies/gb/09411531"}}},{"officer":{"id":190031476,"uid":null,"name":"NEIL KIDMAN","jurisdiction_code":"gb","position":"director","retrieved_at":"2015-12-04T00:00:00+00:00","opencorporates_url":"https://opencorporates.com/officers/190031476","start_date":"2002-05-17","end_date":null,"occupation":"COMPANY DIRECTOR","current_status":null,"inactive":false,"company":{"name":"GILBERT ROAD SERVICE STATION LIMITED","jurisdiction_code":"gb","company_number":"04441363","opencorporates_url":"https://opencorporates.com/companies/gb/04441363"}}}]}}

到目前为止,我的代码是:-

response = requests.get(url) 
response.raise_for_status() 
jsonResponse = response.json() 
officerDetails = jsonResponse['results']['officers']

这很有效,但我的最终目标是创建变量并将其写入.csv。所以我想写一些东西,比如:

name = jsonResponse['results']['officers']['name']
position = jsonResponse['results']['officers']['name']
companyName = jsonResponse['results']['officers']['company']['name']

有什么建议我可以这样做吗?如前所述,我希望遍历JSON响应中的每个“官员”,然后捕获这些值并写入.csv(一旦将它们分配给变量,我将处理.csv部分)


Tags: namehttpscomjsonurldatecodenull
1条回答
网友
1楼 · 发布于 2024-09-24 00:31:56
officers = jsonResponse['results']['officers']

res = []
for officer in officers:
    data = {}
    data['name'] = officer['officer']['name']
    data['position'] = officer['officer']['position']
    data['company_name'] = officer['officer']['company']['name']
    res.append(data)
    

然后,您可以继续将res写入csv文件,这是一个list of objects

相关问题 更多 >