gpt4 book ai didi

python - 在 GoogleAppEngine 中从文件生成 json 的正确方法是什么?

转载 作者:太空宇宙 更新时间:2023-11-04 11:05:40 29 4
gpt4 key购买 nike

我是 python 和 GAE 的新手,任何人都可以提供一些帮助/示例代码来完成以下简单任务吗?我设法读取了一个简单的文件并将其输出为网页,但我需要一些稍微复杂的逻辑。这是伪代码:

  open file;
for each line in file {
store first line as album title;
for each song read {
store first line as song title;
store second line as song URL;
}
}
Output the read in data as a json;

文件格式是这样的

专辑标题1
歌曲1标题
歌曲1网址
歌曲2标题
歌曲2网址

专辑标题2
歌曲1标题
歌曲 1 网址
歌曲 2 标题
歌曲 2 网址
..

最佳答案

这是一个基于生成器的解决方案,具有一些不错的功能:

  • 允许文本文件中相册之间有多个空行
  • 容忍文本文件中的前导/尾随空白行
  • 一次只使用一张相册的内存
  • 展示了您可以使用 Python 完成的许多 neato 事情 :)

albums.txt

Album title1
song1 title
song1 url
song2 title
song2 url

Album title2
song1 title
song1 url
song2 title
song2 url

代码

from django.utils import simplejson

def gen_groups(lines):
""" Returns contiguous groups of lines in a file """

group = []

for line in lines:
line = line.strip()
if not line and group:
yield group
group = []
elif line:
group.append(line)


def gen_albums(groups):
""" Given groups of lines in an album file, returns albums """

for group in groups:
title = group.pop(0)
songinfo = zip(*[iter(group)]*2)
songs = [dict(title=title,url=url) for title,url in songinfo]
album = dict(title=title, songs=songs)

yield album


input = open('albums.txt')
groups = gen_groups(input)
albums = gen_albums(groups)

print simplejson.dumps(list(albums))

输出

[{"songs": [{"url": "song1 url", "title": "song1 title"}, {"url": "song2 url", "title": "song2 title"}], "title": "song2
title"},
{"songs": [{"url": "song1 url", "title": "song1 title"}, {"url": "song2 url", "title": "song2 title"}], "title": "song2
title"}]

然后可以像这样在 Javascript 中访问专辑信息:

var url = albums[1].songs[0].url;

最后,这里有一个注释 tricky zip line .

关于python - 在 GoogleAppEngine 中从文件生成 json 的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1274035/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com