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()
相关推荐
安迪小宝几秒前
6 任务路由与负载均衡
运维·python·celery
Blossom.1182 分钟前
使用Python实现简单的人工智能聊天机器人
开发语言·人工智能·python·低代码·数据挖掘·机器人·云计算
lisw0514 分钟前
Python高级进阶:Vim与Vi使用指南
python·vim·excel
ayiya_Oese26 分钟前
[模型部署] 3. 性能优化
人工智能·python·深度学习·神经网络·机器学习·性能优化
SoraLuna27 分钟前
「Mac畅玩AIGC与多模态40」开发篇35 - 用 Python 开发服务对接 SearxNG 与本地知识库
python·macos·aigc
noravinsc1 小时前
redis是内存级缓存吗
后端·python·django
王学政21 小时前
LlamaIndex 第九篇 Indexing索引
人工智能·python
百锦再2 小时前
大数据技术的主要方向及其应用详解
大数据·linux·网络·python·django·pygame
盛夏绽放2 小时前
Python字符串常用方法详解
开发语言·python·c#
noravinsc3 小时前
django中用 InforSuite RDS 替代memcache
后端·python·django