小工具-生成json文件(py2.7)

原创 2015年11月18日 10:35:49
#!/usr/bin/env python
# coding=utf-8

import json
import os
import copy
from Tkinter import *
import tkFileDialog


def make_json():
    path = pathVar.get()
    if os.path.split(path)[1] != "resource":
        pathVar.set("路径错误,请重新选择")
        return 1
    groupname = "preload"
    data = dict()
    resources = []
    groups = []
    keys = []
    item_dic = dict()
    for file in os.listdir(path):
        if os.path.isdir(os.path.join(path,file)):
            for item in os.listdir(os.path.join(path, file)):
                name, tp = item.split(".")
                item_dic["name"] = name
                if tp in ("jpg","png"):
                    item_dic["type"] = "image"
                    keys.append(name)
                elif tp in ("mp3","ogg"):
                    item_dic["type"] = "sound"
                    keys.append(name)
                elif tp == "json":
                    item_dic["type"] = tp
                item_dic["url"] = os.path.join(file+"/"+item)
                resources.append(copy.copy(item_dic))
    groups.append(dict(name=groupname, keys=",".join(keys)))
    data["resources"] = resources
    data["groups"] = groups
    dump_path = os.path.join(path, "default.res.json")
    f = open(dump_path, "w")
    json.dump(data, f, indent=4)
    f.close()


def choice_fold():
    pathVar.set(tkFileDialog.askdirectory())
    width = len(pathVar.get())
    if width > 15:
        entry["width"] = len(pathVar.get())

root = Tk()
root.title("json生成器")
frame = Frame(root)
frame.pack(padx=5, pady=5, fill=BOTH)
pathVar = StringVar()
entry = Entry(frame, textvariable=pathVar, width=15)
choice_btn = Button(frame, text="选择", command=choice_fold)
makejson_btn = Button(frame, text="生成", command=make_json)
entry.grid(row=1, column=1, padx=(5, 0), sticky=(W, E))
choice_btn.grid(row=1, column=2, padx=(10, 5))
makejson_btn.grid(row=1, column=3, padx=5)
frame.columnconfigure(1, weight=1)
root.mainloop()

相关文章推荐

通用JSON数据生成器

在一个项目中通常会有很多数据是需要通过封装成JSON格式进行传输的,但是在封装JSON的过程中,不仅繁琐,而且也不美观,于是构建了一个JSON数据生成器,用户只需要定义好要传输数据类,然后通过调用封装...
  • zdavb
  • zdavb
  • 2016年03月06日 22:56
  • 2781

Json文件生成与解析--Gson工具类

一、json文件生成       Gson下载地址:http://code.google.com/p/google-gson/       1、简单json文件生成               首先...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

JSON生成器,JSON对象转换器

相信大家对于JSON和对象互转都不陌生,并且现在也已经有了很多转换的框架,使用起来也很方便。 本人之前在自己项目里也实现了类似功能,基本思路就是利用Java的反射调用。 代码比较粗擦,还有挺多可以优化...

py批处理游戏资源脚本(小工具)

刚接触py,挺多不熟悉的API,第一次使用py写工具(边做边学,感觉很充实): 该工具作用:指将.xls/.xlsx导成指定格式的:.xml 程序工作流程: 1)、读取收集所有需要导入.xls/x...

python2.7 串口操作方式 编译 .py为windows可执行exe文件

一 python操作串口   首先下载安装串口模块pyserial 。   代码实现:   import serial ser = serial.Serial('/dev/ttyUSB2', 115...

分享一个小工具:Excel表快速转换成JSON字符串

在游戏项目中一般都需要由策划制作大量的游戏内容,其中很大一部分是使用Excel表来制作的。于是程序就需要把Excel文件转换成程序方便读取的格式。 之前项目使用的Excel表导入工具都是通过Of...

分享一个小工具:Excel表快速转换成JSON字符串

分享一个非常高效的将Excel表单转换完成JSON数据的小工具。
  • Neil3D
  • Neil3D
  • 2014年10月25日 13:56
  • 40981

javascript 排序,分组小工具 - 支持JSON数组 原生数组

/**   * @author wsf 数据分组,排序js   */  本文you ;   (function(win, $) {       var _jsUtils = null;   ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:小工具-生成json文件(py2.7)
举报原因:
原因补充:

(最多只允许输入30个字)