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()
相关推荐
老胖闲聊1 分钟前
Python Copilot【代码辅助工具】 简介
开发语言·python·copilot
Blossom.1185 分钟前
使用Python和Scikit-Learn实现机器学习模型调优
开发语言·人工智能·python·深度学习·目标检测·机器学习·scikit-learn
曹勖之35 分钟前
基于ROS2,撰写python脚本,根据给定的舵-桨动力学模型实现动力学更新
开发语言·python·机器人·ros2
lyaihao1 小时前
使用python实现奔跑的线条效果
python·绘图
ai大师2 小时前
(附代码及图示)Multi-Query 多查询策略详解
python·langchain·中转api·apikey·中转apikey·免费apikey·claude4
小小爬虾2 小时前
关于datetime获取时间的问题
python
蓝婷儿3 小时前
6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础
开发语言·python·学习
chao_7894 小时前
链表题解——两两交换链表中的节点【LeetCode】
数据结构·python·leetcode·链表
大霞上仙5 小时前
nonlocal 与global关键字
开发语言·python
Mark_Aussie5 小时前
Flask-SQLAlchemy使用小结
python·flask