从JSON fi中提取/刮取特定数据

2024-10-02 00:42:39 发布

您现在位置:Python中文网/ 问答频道 /正文

这让我烦恼了好几个小时。我搜索了很多,找到了很多信息。问题是,我不是很好,我实际上是个初学者,我想用Python来实现这个目标(如果可能的话!)。也许还有JavaScript和PHP?让我解释一下。在

我刚找到这个网站http://listeningroom.net,它很好。你可以创建/加入房间,上传曲目,和朋友一起收听。在

我想从.json文件中提取/刮取/获取一些特定的数据。 此文件包含艺术家专辑标题曲目标题等。我只想提取艺术家,专辑和曲目标题。在

http://listeningroom.net/room/chillasfuck/spins.jsonjson文件包含过去24小时播放的曲目。

在四处查看之后,我设法用Python抓取了整个.json文件(local.json文件),下面的代码可能不太有效。在

   json_data=open('...\spins.json')

   data = json.load(json_data)
   pprint(data)

   json_data.close()

这将打印出以下内容:

^{pr2}$

只是打印的一部分

1.我想从一个url(顶部提供的那个)中获取它 2。只需获取“相册”、“艺术家”和“标题” 3.确保打印过程尽可能简单,如下所示:

Artist
Track title
Album

Artist
Track title
Album

4。如果不太多,请将其保存到.txt文件中

我希望我能得到一些帮助,我真的很想为自己创造这个,这样我可以看看更多的音乐!在

马文


Tags: 文件jsonhttp标题datanettitleartist
3条回答

你已经很接近了。在

data = json.load(json_data)

获取JSON字符串并将其转换为Python对象—在本例中,是一个字典列表(加上“metadata”,即字典字典字典)。在

要使其成为您想要的格式,您只需要遍历这些项。在

for song in data:
    artist = song['metadata']['artist'] # This tells it where to look in the dictionary. It's looking for the dictionary item called 'metadata'. Then, looking inside that dictionary for 'artist'.
    album = song['metadata'['album']
    songTitle = song['metadata']['title']
    print '%s\n%s\n%s\n' % (artist, album, songTitle)

或者,要将其打印到文件:

^{pr2}$

好吧,这有点简短,但json的关键在于它将数组转换为字符串

例如。 array['first']=“你好”; array['second']=“那里”

会变成 [{u'first':你好,u'second':'there'}]; 在jsonecode之后 运行jsondecode,你就可以得到你的数组了

因此,只需在解码器上运行json文件,就可以通过以下方式获取数据:

array['metadata'].album
array['metadata'].artist
...

从未使用过python,但它应该是相同的。在

看看http://www.php.net/manual/en/function.json-decode.php它可能会澄清一两件事。在

Python(在加载json之后)

for elem in data:
    print('{artist}\n{title}\n{album}\n'.format(**elem['metadata']))

保存到文件中:

^{pr2}$

相关问题 更多 >

    热门问题