python - 从 jsonify 结果 python 中删除索引
问题描述
所以我正在尝试使用 Flask 进行一些部署。这是我的代码:
from flask import Flask
from flask import request, jsonify
from kompasscrap import kompas_fun
from detikscrap import detik_fun
import requests
from bs4 import BeautifulSoup
import pandas as pd
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time
import os.path
import re
from datetime import datetime
import json
scrapdate = str(datetime.today().strftime('%d-%m-%Y'))
def create_app():
app = Flask(__name__)
@app.route('/', methods=['POST'])
def index():
news_site = request.get_json()
kompas = bool(news_site.get("kompas"))
detik = bool(news_site.get("detik"))
scrapdata = []
if kompas:
scrapdata.append(kompas_fun())
if detik:
scrapdata.append(detik_fun())
df = pd.DataFrame(scrapdata)
list_dct = df.to_dict(orient='records')
dct = {"date":scrapdate, "data": list_dct}
return jsonify(dct or {'value': 'error'})
return app
我正在使用 Postman 进行 json 请求。但是输出是这样的:
{
"data": [
{
"0": {
"category": "Global",
"content": "Kemampuan Bersembunyi Pasukan Khusus Inggris, Bisakah Kamu Temukan?, , LONDON, KOMPAS.com - Pasukan Khusus Inggris dikenal unggul di sejumlah bidang, tetapi pasukan penembak jitunya mengambil posisi teratas sebagai ahli penyamaran.",
"date": "29/11/2020",
"editor": "Editor Shintaloka Pradita Sicca",
"headline": "Kemampuan Bersembunyi Pasukan Khusus Inggris, Bisakah Kamu Temukan?",
"link": "https://www.kompas.com/global/read/2020/11/29/231741970/kemampuan-bersembunyi-pasukan-khusus-inggris-bisakah-kamu-temukan",
"read count": "325203",
"tag": "militer",
"time": "23:17 WIB",
"total comment": "32",
"writer": "Penulis Shintaloka Pradita Sicca"
},
"1": {
"category": "Nasional",
"content": "Gonjang-ganjing Jelang Ganti Kapolri, Geng Solo, Makassar, Pejaten, dan Independen, Host & Produser Eksekutif Program AIMAN | AIMAN setiap senin, Pukul 20.00 WIB di KompasTV, KAPOLRI Jenderal Idham Aziz, akan segera memasuki masa pensiun pada Januari 2021 nanti. Meski bisa diperpanjang, tapi peluang untuk pergantian terbuka lebar.",
"date": "30/11/2020",
"editor": "Editor Heru Margianto",
"headline": "Gonjang-ganjing Jelang Ganti Kapolri, Geng Solo, Makassar, Pejaten, dan Independen",
"link": "https://nasional.kompas.com/read/2020/11/30/08444511/gonjang-ganjing-jelang-ganti-kapolri-geng-solo-makassar-pejaten-dan",
"read count": "89950",
"tag": "kapolri jenderal idham azis",
"time": "08:44 WIB",
"total comment": "17",
"writer": "None"
}
}
],
"date": "30-11-2020"
}
我已经orient='records'
在转换为字典时使用了,但索引仍然存在,甚至成为字典本身。主要日期位于输出的底部而不是顶部。我想要的输出是这样的:
{
"date": "30-11-2020",
"data": [
{
"category": "Global",
"content": "Kemampuan Bersembunyi Pasukan Khusus Inggris, Bisakah Kamu Temukan?, , LONDON, KOMPAS.com - Pasukan Khusus Inggris dikenal unggul di sejumlah bidang, tetapi pasukan penembak jitunya mengambil posisi teratas sebagai ahli penyamaran.",
"date": "29/11/2020",
"editor": "Editor Shintaloka Pradita Sicca",
"headline": "Kemampuan Bersembunyi Pasukan Khusus Inggris, Bisakah Kamu Temukan?",
"link": "https://www.kompas.com/global/read/2020/11/29/231741970/kemampuan-bersembunyi-pasukan-khusus-inggris-bisakah-kamu-temukan",
"read count": "325203",
"tag": "militer",
"time": "23:17 WIB",
"total comment": "32",
"writer": "Penulis Shintaloka Pradita Sicca"
},
{
"category": "Nasional",
"content": "Gonjang-ganjing Jelang Ganti Kapolri, Geng Solo, Makassar, Pejaten, dan Independen, Host & Produser Eksekutif Program AIMAN | AIMAN setiap senin, Pukul 20.00 WIB di KompasTV, KAPOLRI Jenderal Idham Aziz, akan segera memasuki masa pensiun pada Januari 2021 nanti. Meski bisa diperpanjang, tapi peluang untuk pergantian terbuka lebar.",
"date": "30/11/2020",
"editor": "Editor Heru Margianto",
"headline": "Gonjang-ganjing Jelang Ganti Kapolri, Geng Solo, Makassar, Pejaten, dan Independen",
"link": "https://nasional.kompas.com/read/2020/11/30/08444511/gonjang-ganjing-jelang-ganti-kapolri-geng-solo-makassar-pejaten-dan",
"read count": "89950",
"tag": "kapolri jenderal idham azis",
"time": "08:44 WIB",
"total comment": "17",
"writer": "None"
}
]
}
任何帮助,将不胜感激。
编辑:上面的输出不仅仅是 2 个字典/数据。所以它不能只删除“0”或“1”。
解决方案
那么你可以试试:
for i, subdict in enumerate(app['data']):
for key in subdict.keys():
for subkey in subdict[key].keys():
app['data'][i][subkey] = subdict[key][subkey]
del app['data'][i][key]
这会将您不需要的输出转换为您想要的输出。
它将遍历您的数据字典列表,并通过将不需要的键下的内容复制到该不需要的键的同一级别来删除一层降序树。然后它将删除不需要的密钥和相关内容。
推荐阅读
- javascript - 如何在您的谷歌搜索上覆盖 iframe?
- unity3d - Hololens 具有空间意识的角色
- c# - 如何在 C# 中找到 wsdl 服务的参数
- apache-kafka - Apache Kafka 分区偏移量在重新平衡期间倒带
- r - 绘制澳大利亚各州的叶绿素图
- python - youtube 数据 api 将哪些内容归类为无效关键字?
- typescript - TypeScript 导入:无法加载资源 (404)
- r - 将除第一个字母之外的句子的每个单词大写
- php - 将 WooCommerce 城市字段更改为前端和管理中的下拉列表
- swift - macOS WidgetKit 扩展中的钥匙串错误 -25308 (errSecInteractionNotAllowed)