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()
相关推荐
TANGLONG22212 分钟前
【初阶数据结构与算法】复杂度分析练习之轮转数组(多种方法)
java·c语言·数据结构·c++·python·算法·面试
恒风521227 分钟前
空元组同一空间,空列表不是同一空间print(a is b, c is d)
python
AI视觉网奇2 小时前
显存占用 显存测试
pytorch·python·深度学习
真学不来2 小时前
ACTF新生赛2020:NTFS数据流
网络·笔记·python·安全·ctf
Justin_ly2 小时前
Java 用户随机选择导入ZIP文件,解压内部word模板并入库,Windows/可视化Linux系统某麒麟国防系统...均可适配
java·开发语言·python
懒惰才能让科技进步3 小时前
从零学习大模型(十三)-----LayerDrop 和 Layer Pruning
人工智能·python·深度学习·chatgpt·transformer·剪枝
费弗里3 小时前
Dash 2.18.2版本更新:模式匹配回调性能大提升
python·dash
"wink3 小时前
Python实现全国岗位招聘信息可视化分析(源码+论文+部署讲解)
开发语言·python·信息可视化
java1234_小锋3 小时前
[免费]基于Python的Django+Vue3在线考试系统【论文+源码+SQL脚本】
开发语言·python
甘北3 小时前
django-tidb版本说明
python·django·tidb