Php 从JSON文件中提取/刮取特定数据

Php 从JSON文件中提取/刮取特定数据,php,javascript,jquery,python,Php,Javascript,Jquery,Python,这件事困扰了我好几个小时。我已经搜索了很多,找到了很多信息。问题是,我不是很好,我实际上是一个初学者,我想用Python实现这一点(如果可能的话!)。也许还可以使用JavaScript和PHP?让我解释一下 我刚找到这个网站,它很棒。您可以创建/加入聊天室,上传曲目,并与朋友一起收听 我想从.json文件中提取/刮取/获取一些特定数据。 此文件包含艺术家、专辑标题、曲目标题等。我只想提取艺术家、专辑和曲目标题 .json文件包含过去24小时播放的曲目 在环顾了一下(local.json文件)之后

这件事困扰了我好几个小时。我已经搜索了很多,找到了很多信息。问题是,我不是很好,我实际上是一个初学者,我想用Python实现这一点(如果可能的话!)。也许还可以使用JavaScript和PHP?让我解释一下

我刚找到这个网站,它很棒。您可以创建/加入聊天室,上传曲目,并与朋友一起收听

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

.json文件包含过去24小时播放的曲目

在环顾了一下(local.json文件)之后,我设法用Python刮取了整个.json文件,其中的代码可能不太有效

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

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

   json_data.close()
这将打印出以下内容:

   [{u'endTime': u'1317752614105',
   u'id': u'cf37894e8eaf886a0d000000',
   u'length': 492330,
   u'metadata': {u'album': u'Mezzanine',
            u'artist': u'Massive Attack',
            u'bitrate': 128000,
            u'label': u'Virgin',
            u'length': 17494.479054779807,
            u'title': u'Group Four'},
只是印刷品的一部分

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

Artist
Track title
Album

Artist
Track title
Album
4.如果不太多,请将其保存到.txt文件中

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


Marvin

好的,这有点短,但json的问题是它将数组转换为字符串

例如。 数组['first']='hello'; 数组['second']='there'

将成为 [{u'first':u'hello',u'second':'there'}]; 在一段代码之后 运行jsondecode,你就能找回你的数组

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

array['metadata'].album
array['metadata'].artist
...
我从未使用过python,但应该是相同的


看一看,它可能会清除upp中的一两个东西。

好的,这有点短,但json的问题是它将数组转换为字符串

例如。 数组['first']='hello'; 数组['second']='there'

将成为 [{u'first':u'hello',u'second':'there'}]; 在一段代码之后 运行jsondecode,你就能找回你的数组

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

array['metadata'].album
array['metadata'].artist
...
我从未使用过python,但应该是相同的

看一看,它可能会清除upp的一两个问题。

Python(在加载json之后)

要保存到文件中,请执行以下操作:

with open('the_file_name.txt','w') as f:
    for elem in data:
        f.write('{artist}\n{title}\n{album}\n\n'.format(**elem['metadata']))
Python(加载json后)

要保存到文件中,请执行以下操作:

with open('the_file_name.txt','w') as f:
    for elem in data:
        f.write('{artist}\n{title}\n{album}\n\n'.format(**elem['metadata']))
对于PHP,您需要

请注意,这里装载了大量JSON数据,因此您必须对所需的PHP进行充分的迭代


请注意,这里装载了大量JSON数据,因此您必须充分迭代

您已经非常接近了

data=json.load(json\u数据)

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

要将其转换为所需的格式,只需循环遍历这些项

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)
或者,要将其打印到文件:

with open('the_file_name.txt','w') as f:
    for song in data:
        artist = song['metadata']['artist']
        album = song['metadata'['album']
        songTitle = song['metadata']['title']
        f.write('%s\n%s\n%s\n' % (artist, album, songTitle))

你已经很接近了

data=json.load(json\u数据)

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

要将其转换为所需的格式,只需循环遍历这些项

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)
或者,要将其打印到文件:

with open('the_file_name.txt','w') as f:
    for song in data:
        artist = song['metadata']['artist']
        album = song['metadata'['album']
        songTitle = song['metadata']['title']
        f.write('%s\n%s\n%s\n' % (artist, album, songTitle))

加载json之后,您就有了一个字典。访问
数据['metadata']['artist']
和其他数据有多难?是的,很抱歉登录,忘记了。还有杰伯纳尔多,谢谢。我是Python新手,你的答案很好。它工作完美无瑕。我已经对Python感兴趣了,但在你回答之后,我甚至变得更感兴趣了。看起来很简单。再次感谢!加载json之后,您就有了一个字典。访问
数据['metadata']['artist']
和其他数据有多难?是的,很抱歉登录,忘记了。还有杰伯纳尔多,谢谢。我是Python新手,你的答案很好。它工作完美无瑕。我已经对Python感兴趣了,但在你回答之后,我甚至变得更感兴趣了。看起来很简单。再次感谢!太棒了,谢谢。我已经有了Python解决方案,但我肯定会尝试一下。太棒了,谢谢。我已经有了Python解决方案,但我肯定会尝试一下。