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()
相关推荐
明月看潮生20 分钟前
青少年编程与数学 02-016 Python数据结构与算法 25课题、量子算法
python·算法·青少年编程·量子计算·编程与数学
水w22 分钟前
【Python爬虫】详细入门指南
开发语言·爬虫·python·scrapy·beautifulsoup
weixin_4450547227 分钟前
力扣刷题-热题100题-第35题(c++、python)
c++·python·leetcode
_x_w2 小时前
【17】数据结构之图及图的存储篇章
数据结构·python·算法·链表·排序算法·图论
pianmian12 小时前
arcgis几何与游标(1)
开发语言·python
冬天vs不冷2 小时前
SpringBoot条件注解全解析:核心作用与使用场景详解
java·spring boot·python
nanzhuhe2 小时前
python中参数前**的含义
开发语言·python
hello_ejb32 小时前
聊聊Spring AI Alibaba的PdfTablesParser
windows·python·spring
Kairo_012 小时前
秘密任务 2.0:如何利用 WebSockets + DTOs 设计实时操作
python
ghost1432 小时前
Python自学第2天:条件语句,循环语句
开发语言·python·学习