-1

我正在处理来自 get API 请求的响应 json 文件。我已经能够弄清楚如何展平响应,并且我想通过包含 pdf 文件扩展名的记录过滤相关的数据帧,我将使用这些文件扩展名来检索感兴趣的文件。这是代码:

from flatten_json import flatten
import requests
import pandas as pd
import re
payload= {"chamber_type":"committee","chamber":"dail","date_start":"2018-01-01", "date_end":"2018-12-31", "limit":"1000"}
test = requests.get("https://api.oireachtas.ie/v1/debates", params=payload)
text = test.content.decode("utf-8")
print(text)
test.json()
test1=flatten(test.json())
df = pd.Series(test1).to_frame()
df[["pdf"]] = df[df.index.isin(["uri_pdf"])]

即使应该给出肯定的结果,整个 df 也会返回 nan 。 在此处输入图像描述

我试图用相同的表达式过滤索引,但结果是一个空的 df。

哪里 isin 不在这里工作?

4

1 回答 1

0

.isin() 不像您预期​​的那样工作(例如包含)。IIUC,你需要 str.contains():

df[df.index.str.contains('pdf_uri')]

或者在您的情况下,您可以使用 str.endswith()

df[df.index.str.endswith('pdf_uri')]

在此处输入图像描述

于 2020-07-23T20:17:29.023 回答