繁体   English   中英

我正在尝试从 Airtable API 解析 Json 文件,但它没有解析空字段或分隔符

[英]I'm trying to parse a Json file from Airtable API, but it's not parsing empty fields or delimiters

我目前正在尝试从 Airtable API 解析一些数据,在某种程度上,它已经奏效了。

我做了很多挖掘,发现这个非常好的资源: http : //blog.appliedinformaticsinc.com/how-to-parse-and-convert-json-to-csv-using-python/

我的问题是,当我尝试将其放入 Dataframe 时,未解析空字段,并导致列移位,因此从未正确构建数据框。

例如:

{'offset': --,
'records': [{'createdTime': time,
          'fields': {'A': '1',
                     'B': '2',
                     'C':  3,
                     'D': 'text',
                     'E':  object,
                     }]

由于我将第一行字段作为字典键,任何时候它们中的一个丢失,由于某种原因它没有在代码中分开,它会是这样的:

 [{'createdTime': time,
      'fields': {'A': '1',
                 'B': '2',
                 'D': 'text',
                 'E':  object,
                 }]

并且脚本不会将其与其各自的列对齐。 我需要帮助,因为我尝试以多种方式解析记录,这与我已经开始工作一样接近。 如果有人对 Airtable API 有经验,我们将不胜感激。 PowerBI 查询实际上可以正确获取数据,因此在某处必须有一个隐藏的分隔符。

我在 API 请求方面不是非常有经验,而且我主要处理非复杂的数据帧,所以我虚心地向大家寻求帮助。

提前致谢,马特

感谢您的帮助,我已经通过在分页上应用 pd.Series 两次解决了主要问题。

import requests

headers = {'Authorization': 'Bearer api_key','Content- 
type':'application/json'}
for offset in range(0, 1000,100):
    url = airtable_url + '&offset=' + str(offset)
    r = requests.get(airtable_url, headers=headers)
    x = pd.DataFrame(r.json())
    x = x['records'].apply(pd.Series)
    x = x['fields'].apply(pd.Series)

我的主要问题是我仍然只得到 100 条记录,但至少数据框现在是正确的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM