You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何直接使用people变量完成两种JSON Schema的转换

Python中如何直接使用people变量完成两种JSON Schema的转换

嗨,我来帮你搞定这个问题!你现在的代码是用手动复制的示例数据存到json_data里做转换,但其实完全可以直接用people(也就是response.text)来处理,根本不需要手动复制那一步,我给你一步步说怎么改:

首先你要知道,response.text返回的是JSON格式的字符串,咱们没法直接遍历或者访问里面的字段,得先把它转换成Python能识别的列表/字典结构,这时候就用到json.loads()方法啦。

接下来看修改后的完整代码,我把关键改动标出来了:

import requests
import json

response = requests.get('https://challenge-automation-engineer-xij5xxbepq-uc.a.run.app/people/',
headers={'Authorization': 'fFz8Z7OpPTSY7gpAFPrWntoMuo07ACjp'})

# 关键改动1:直接用people变量接收响应文本,然后解析成Python数据结构
people = response.text
parsed_people = json.loads(people)  # 把JSON字符串转成Python列表

converted_data = []

# 关键改动2:循环解析后的parsed_people,而不是手动复制的json_data
for data in parsed_people:
    converted_data.append({
        "first_name": data["fields"]["firstName"].strip(),
        "last_name": data["fields"]["lastName"],
        "birthdate": f"{data['fields']['dateOfBirth'][-4:]}-{data['fields']['dateOfBirth'][:2]}-{data['fields']['dateOfBirth'][3:5]}",
        "email": data["fields"]["email"],
        "custom_properties": {
            "airtable_id": data["id"],
            "lifetime_value": float(data["fields"]["lifetime_value"][1:].replace(",", ""))
        }
    })

print(json.dumps(converted_data, indent=4))

我还把日期拼接的部分改成了f-string,这样代码更简洁易读,当然你要是喜欢原来的写法也可以保留~

简单总结下逻辑:

  • 用response.text拿到接口返回的JSON字符串,存到people变量
  • 用json.loads(people)把字符串转成Python的列表(因为接口返回的是多个用户的数组)
  • 然后循环这个列表,按照你已经写好的转换逻辑处理每个用户数据就行

这样就完全不需要手动复制示例数据到json_data里了,直接用people变量完成整个流程啦!

备注:内容来源于stack exchange,提问作者rogawiv352

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 15:32:34