Python 实现读取Json生成CSV

Python 实现读取Json生成CSV

先看数据,就是目前工作中里面很多小语言 ,有时候返回的小语言特别多,是很多json,这如果人工去读取数据的话,会非常麻烦,就可以按照这些来实现

json 复制代码
{
"en": {
"ABCDTitle": "Get enough <span>ABCD credits</span>",
"ABCDTitleTip": "Unlock the power of ABCD",
"buyABCD": "Buy ABCD Credits",
"creativeTitle": "Get <span>Creative Assets</span>",
"creativeTitleTip": "Like ABCD's asset library? Upgrade for freely use stickers, filters, titles, etc...",
"buyCreative": "Buy Assets",
"current": "Current",
"upgrade": "Upgrade Now",
"renewTip": "then <span></span>/yr, cancel anytime",
"updateWeekly": "Assets Updated Weekly",
"everythingBasic": "Everything in Basic, plus:",
"credits100": "100 Credits",
"creditsMo200": "200/mo Credits",
"creditsMo1000": "<b>1000</b>/mo Credits",
"creditsMo2000": "<b>2000</b>/mo Credits",
"copywriting": "ABCD Copywriting",
"music": "ABCD Music Generator",
"textToVideo": "ABCD Text-to-Video",
"copilit": "ABCD Copilot",
"sticker": "ABCD Sticker",
"cloning": "ABCD Voice Cloning",
"feature": "ABCD features are constantly being updated",
"stockMedia": "Millions of stock media assets for commercial use",
"royaltyFreeMusic": "<b>100K+</b> Royalty-free music tracks",
"soundEffects": "<b>50K+</b> Sound effects and video effects",
"plugIns": "<b>200+</b> Boris ABCD and NewBlueABCD Plug-ins"
},
"ar": {
"ABCDTitle": "</span>الحصول على ما يكفي من <span>أرصدة الذكاء الاصطناعي",
"ABCDTitleTip": "اكتشف قدرات الذكاء الاصطناعي",
"buyABCD": "شراء أرصدة الذكاء الاصطناعي",
"creativeTitle": "احصل على<span> الأصول الإبداعية</span>",
"creativeTitleTip": "هل تعجبك مكتبة أصول ABCD؟ قم بالترقية للوصول إلى الملصقات والفلاتر والعناوين والكثير غير ذلك.",
"buyCreative": "شراء الأصول",
"current": "الخطة الحالية",
"upgrade": "قم بالترقية الآن",
"renewTip": "ثم <span></span>/السنة أو قم بالإلغاء في أي وقت",
"updateWeekly": "يتم التحديث أسبوعيًا",
"everythingBasic": "كل شيء في الخطة الأساسية، بالإضافة إلى:",
"credits100": "100 رصيد",
"creditsMo200": "200 رصيد/الشهر",
"creditsMo1000": "<b>1000</b> رصيد/الشهر",
"creditsMo2000": "<b>2000</b> رصيد/الشهر",
"copywriting": "كتابة المحتوى بالذكاء الاصطناعي",
"music": "الموسيقى بالذكاء الاصطناعي",
"textToVideo": "تحويل النص إلى فيديو بالذكاء الاصطناعي  ",
"copilit": "ABCD Copilot",
"sticker": "ملصق بالذكاء الاصطناعي",
"cloning": "استنساخ الصوت بالذكاء الاصطناعي",
"feature": "يتم تحديث ميزات الذكاء الاصطناعي باستمرار",
"stockMedia": "ملايين من أصول الوسائط المجمعة المخصصة للاستخدام التجاري",
"royaltyFreeMusic": "أكثر من 100 ألف مقطع موسيقي خالي من الحقوق الملكية",
"soundEffects": "أكثر من 50 ألف تأثير صوتي وتأثير فيديو",
"plugIns": "أكثر من 200 مكون إضافي لـ Boris ABCD وNewBlueABCD"
}}

直接看代码

python 复制代码
import json
import csv
import os

def csv_json():
    # 1. 使用上下文管理器打开文件
    with open("word.json", "r", encoding='utf-8') as json_fp:
        data_list = json.load(json_fp)

    sheet_title = ["sourceTr", "ar", "de", "en", "es", "fr", "id", "it", "ja", "ko", "nl", "pl", "pt", "ro", "ru", "sv", "zh_HK", "zh_TW", "th"]
    sheet_data = []

    # 2. 遍历 "en" 字典中的键
    for key in data_list["en"].keys():
        row = []
        for title in sheet_title:
            if title == "sourceTr":
                head_key = "en"
            elif title in ["zh_HK", "zh_TW"]:
                head_key = "zh"
            else:
                head_key = title

            # 3. 获取值,若不存在则填充空字符串
            row.append(data_list.get(head_key, {}).get(key, ""))
        
        sheet_data.append(row)

    # 4. 检查文件是否存在且不为空
    file_exists = os.path.isfile("word.csv") and os.stat("word.csv").st_size > 0

    with open("word.csv", "a", encoding='utf-8', newline='') as csv_fp:
        writer = csv.writer(csv_fp)
        # 5. 写入表头
        if not file_exists:
            writer.writerow(sheet_title)
        # 6. 写入内容
        writer.writerows(sheet_data)

if __name__ == "__mABCDn__":
    csv_json()
相关推荐
lifloveyou9 小时前
table接口结构
python
Warson_L10 小时前
class 扩展
python
前端与小赵11 小时前
Python 数据结构陷阱与复数运算优化:列表、元组、字典成员操作辨析及 NumPy 高效实践
python
天天进步201511 小时前
Python全栈项目--基于深度学习的视频目标跟踪系统
python·深度学习·音视频
天天进步201512 小时前
Python全栈项目--Python自动化运维工具开发
运维·python·自动化
(●—●)橘子……12 小时前
力扣第503场周赛练习理解
python·学习·算法·leetcode·职场和发展·周赛
爱吃羊的老虎12 小时前
【JAVA】python转java:Spring Boot 入门
java·spring boot·python
小桥流水---人工智能13 小时前
【已解决】ImportError: cannot import name ‘AdamW‘ from ‘transformers.optimization‘
python
芝麻开门GEO13 小时前
泰安GEO优化服务,真的能提升效果吗?
人工智能·python
颜酱13 小时前
选读:工业级调用 LangChain:从 Demo 到企业级应用
python