我试图向dataframe添加行项,但无法更新dataframe。到目前为止,我尝试过的东西都被注释掉了,因为它不能满足我的需要。
我只想下载json文件并将其存储到带有给定列的dataframe中。似乎我无法提取子组件fron文件并将它们存储到一个全新的dataframe中。
请找到我的密码:
import requests, json, urllib
import pandas as pd
url = "https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json"
data = pd.read_json(url)
headers = []
df = pd.DataFrame()
for key, item in data['vulnerabilities'].items():
for k in item.keys():
headers.append(k)
col = list(set(headers))
new_df = pd.DataFrame(columns=col)
for item in data['vulnerabilities'].items():
print(item[1])
# new_df['product'] = item[1]['product']
# new_df['vendorProject'] = item[1]['vendorProject']
# new_df['dueDate'] = item[1]['dueDate']
# new_df['shortDescription'] = item[1]['shortDescription']
# new_df['dateAdded'] = item[1]['dateAdded']
# new_df['vulnerabilityName'] = item[1]['vulnerabilityName']
# new_df['cveID'] = item[1]['cveID']
# new_df.append(item[1], ignore_index = True)
new_df最后,我的df仍然是空白的。

发布于 2022-01-23 11:12:20
可以使用pd.json_normalize()直接将嵌套的JSON数据转换为扁平的数据。标题是从JSON本身提取的。
new_df = pd.DataFrame(pd.json_normalize(data['vulnerabilities']))更新:专门取消了vulnerabilities列的嵌套。
输出:

发布于 2022-01-23 11:14:27
它在这方面发挥了作用:
import requests, json, urllib
import pandas as pd
url = "https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json"
data = pd.read_json(url)
headers = []
df = pd.DataFrame()
for key, item in data['vulnerabilities'].items():
for k in item.keys():
headers.append(k)
col = list(set(headers))
new_df = pd.DataFrame(columns=col)
for item in data['vulnerabilities'].items():
new_df.loc[len(new_df.index)] = item[1] <===THIS
new_df.head()https://stackoverflow.com/questions/70821382
复制相似问题