基于ruby、python或node.js脚本中的文件结构创建JSON
我有文件夹结构,我想根据根文件夹中的文件夹名和文件树中下面的文件创建JSON对象。文件名结构良好,如下所示:基于ruby、python或node.js脚本中的文件结构创建JSON,python,ruby,json,node.js,Python,Ruby,Json,Node.js,我有文件夹结构,我想根据根文件夹中的文件夹名和文件树中下面的文件创建JSON对象。文件名结构良好,如下所示: objectNNN.xyz 其中NNN是一个像001,002这样的数字。。。xyz可以是.png、.jpg、.eps或.mp3 文件夹结构如下(输入到脚本): 果实 图像 apple001.jpg apple002.jpg apple003.jpg 橙色001.jpg 橙色002.png 橙色03.jpg 听起来 apple001.mp3 apple002.mp3 橙子001.
objectNNN.xyz
其中NNN是一个像001,002这样的数字。。。xyz可以是.png、.jpg、.eps或.mp3
文件夹结构如下(输入到脚本):
果实
- 图像
- apple001.jpg
- apple002.jpg
- apple003.jpg
- 橙色001.jpg
- 橙色002.png
- 橙色03.jpg
- 听起来
- apple001.mp3
- apple002.mp3
- 橙子001.mp3
- 。。。等
- 。。。等
这个问题的定义相当模糊,但这是我解释你想要什么的最好办法。将此扩展到添加文件路径和更多项目组,留给读者作为练习
from re import split
from itertools import groupby, izip
fruits = set(["apple", "pear"])
animals = set(["bear", "cat"])
json_structure = {}
text_input = ["apple001.png", "apple002.jpg", "bear001.png", "pear001.png", "cat001.png"]
def check(filename):
"""Checks which group a filename is in and returns an integer for ordering"""
n = split(r'[0-9]', filename)[0]
if n in fruits:
return 0
else:
return 1
grouped = groupby(sorted(text_input, key=check), key=check)
for objects, object_type in izip(grouped, ["fruits", "animals"]):
items = objects[1]
json_structure[object_type] = list(items)
print json_structure
我只是想知道最好的方法是什么。这很有帮助,虽然不是我想要的。。。我已将其范围直接限定到Node.js,并澄清了我在这里寻找的内容:
from re import split
from itertools import groupby, izip
fruits = set(["apple", "pear"])
animals = set(["bear", "cat"])
json_structure = {}
text_input = ["apple001.png", "apple002.jpg", "bear001.png", "pear001.png", "cat001.png"]
def check(filename):
"""Checks which group a filename is in and returns an integer for ordering"""
n = split(r'[0-9]', filename)[0]
if n in fruits:
return 0
else:
return 1
grouped = groupby(sorted(text_input, key=check), key=check)
for objects, object_type in izip(grouped, ["fruits", "animals"]):
items = objects[1]
json_structure[object_type] = list(items)
print json_structure