Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 解码json并遍历django模板中的项_Python_Django_Json_Loops_Simplejson - Fatal编程技术网

Python 解码json并遍历django模板中的项

Python 解码json并遍历django模板中的项,python,django,json,loops,simplejson,Python,Django,Json,Loops,Simplejson,嗨,我正在使用simplejson导入一些json,然后解码以在django模板中使用 这是解码后的json: {u'ServerID': 1, u'Cache': {u'CacheBusted': False, u'FromCache': True}, u'Result': [{u'Url': u'http://listen.grooveshark.com/playlist/Soul_Power/399134', u'Cache': {u'FromCache': True}, u'Playli

嗨,我正在使用simplejson导入一些json,然后解码以在django模板中使用

这是解码后的json:

{u'ServerID': 1, u'Cache': {u'CacheBusted': False, u'FromCache': True}, u'Result': [{u'Url': u'http://listen.grooveshark.com/playlist/Soul_Power/399134', u'Cache': {u'FromCache': True}, u'PlaylistID': u'399134', u'Name': u'Soul Power', u'ModifiedTime': u'1229427645'}, {u'Url': u'http://listen.grooveshark.com/playlist/4RK_(v.3)/491934', u'Cache': {u'FromCache': True}, u'PlaylistID': u'491934', u'Name': u'4RK (v.3)', u'ModifiedTime': u'1231028348'}, {u'Url': u'http://listen.grooveshark.com/playlist/My_Bands/3735842', u'Cache': {u'FromCache': True}, u'PlaylistID': u'3735842', u'Name': u'My Bands', u'ModifiedTime': u'1234384383'}, {u'Url': u'http://listen.grooveshark.com/playlist/Go_Move_Cruise/19255842', u'Cache': {u'FromCache': True}, u'PlaylistID': u'19255842', u'Name': u'Go Move Cruise', u'ModifiedTime': u'1259081222'}, {u'Url': u'http://listen.grooveshark.com/playlist/Goodnight/19854340', u'Cache': {u'FromCache': True}, u'PlaylistID': u'19854340', u'Name': u'Goodnight', u'ModifiedTime': u'1259457504'}, {u'Url': u"http://listen.grooveshark.com/playlist/Bottle_Poppin'_with_Friends_&_Scarfs/22398199", u'Cache': {u'FromCache': True}, u'PlaylistID': u'22398199', u'Name': u"Bottle Poppin' with Friends & Scarfs", u'ModifiedTime': u'1262525701'}, {u'Url': u'http://listen.grooveshark.com/playlist/Primer/23525296', u'Cache': {u'FromCache': True}, u'PlaylistID': u'23525296', u'Name': u'Primer', u'ModifiedTime': u'1264372296'}, {u'Url': u'http://listen.grooveshark.com/playlist/The_Snake_The_Cross_The_Crown/23863213', u'Cache': {u'FromCache': True}, u'PlaylistID': u'23863213', u'Name': u'The Snake The Cross The Crown', u'ModifiedTime': u'1264884692'}, {u'Url': u'http://listen.grooveshark.com/playlist/Ward/24957740', u'Cache': {u'FromCache': True}, u'PlaylistID': u'24957740', u'Name': u'Ward', u'ModifiedTime': u'1265843831'}, {u'Url': u'http://listen.grooveshark.com/playlist/NeuroLinguistic_Programming/26526478', u'Cache': {u'FromCache': True}, u'PlaylistID': u'26526478', u'Name': u'Neuro-Linguistic Programming', u'ModifiedTime': u'1268957617'}, {u'Url': u'http://listen.grooveshark.com/playlist/ISO50_Playlist_#8/27319532', u'Cache': {u'FromCache': True}, u'PlaylistID': u'27319532', u'Name': u'ISO50 Playlist #8', u'ModifiedTime': u'1270560957'}, {u'Url': u'http://listen.grooveshark.com/playlist/Caribou_Swim/27959307', u'Cache': {u'FromCache': True}, u'PlaylistID': u'27959307', u'Name': u'Caribou - Swim', u'ModifiedTime': u'1271811201'}, {u'Url': u'http://listen.grooveshark.com/playlist/Del/28944659', u'Cache': {u'FromCache': True}, u'PlaylistID': u'28944659', u'Name': u'Del', u'ModifiedTime': u'1273576988'}, {u'Url': u'http://listen.grooveshark.com/playlist/ISO50_Playlist_#7/29740328', u'Cache': {u'FromCache': True}, u'PlaylistID': u'29740328', u'Name': u'ISO50 Playlist #7', u'ModifiedTime': u'1274878455'}, {u'Url': u'http://listen.grooveshark.com/playlist/Axe_Atac/29827929', u'Cache': {u'FromCache': True}, u'PlaylistID': u'29827929', u'Name': u'Axe A-tac', u'ModifiedTime': u'1274999610'}, {u'Url': u'http://listen.grooveshark.com/playlist/Finding_Candy/31280614', u'Cache': {u'FromCache': True}, u'PlaylistID': u'31280614', u'Name': u'Finding Candy', u'ModifiedTime': u'1277587721'}, {u'Url': u'http://listen.grooveshark.com/playlist/Tobacco_Fingerlicked_Up_Friends/32410276', u'Cache': {u'FromCache': True}, u'PlaylistID': u'32410276', u'Name': u'Tobacco - Fingerlicked Up Friends', u'ModifiedTime': u'1279650743'}, {u'Url': u'http://listen.grooveshark.com/playlist/Broken_Social_Scene_Forgiveness_Rock_Band/32410310', u'Cache': {u'FromCache': True}, u'PlaylistID': u'32410310', u'Name': u'Broken Social Scene - Forgiveness Rock Band', u'ModifiedTime': u'1279650795'}, {u'Url': u'http://listen.grooveshark.com/playlist/Yeasayer_All_Hour_Cymbals/32410328', u'Cache': {u'FromCache': True}, u'PlaylistID': u'32410328', u'Name': u'Yeasayer - All Hour Cymbals', u'ModifiedTime': u'1279650820'}, {u'Url': u'http://listen.grooveshark.com/playlist/Yeasayer_Odd_Blood/32410341', u'Cache': {u'FromCache': True}, u'PlaylistID': u'32410341', u'Name': u'Yeasayer - Odd Blood', u'ModifiedTime': u'1279650839'}, {u'Url': u'http://listen.grooveshark.com/playlist/The_Chemical_Brothers_Further/32410395', u'Cache': {u'FromCache': True}, u'PlaylistID': u'32410395', u'Name': u'The Chemical Brothers - Further', u'ModifiedTime': u'1279650906'}, {u'Url': u'http://listen.grooveshark.com/playlist/Why?_Alopecia/32694517', u'Cache': {u'FromCache': True}, u'PlaylistID': u'32694517', u'Name': u'Why? - Alopecia', u'ModifiedTime': u'1280139036'}, {u'Url': u'http://listen.grooveshark.com/playlist/Ben_Frost_By_The_Throat/34275177', u'Cache': {u'FromCache': True}, u'PlaylistID': u'34275177', u'Name': u'Ben Frost - By The Throat', u'ModifiedTime': u'1282579712'}, {u'Url': u'http://listen.grooveshark.com/playlist/Digitalism_Idealism/34422107', u'Cache': {u'FromCache': True}, u'PlaylistID': u'34422107', u'Name': u'Digitalism - Idealism', u'ModifiedTime': u'1282771579'}, {u'Url': u'http://listen.grooveshark.com/playlist/Bun_B_Trill_O.G._[Deluxe_Edition]/34914808', u'Cache': {u'FromCache': True}, u'PlaylistID': u'34914808', u'Name': u'Bun B - Trill O.G. [Deluxe Edition]', u'ModifiedTime': u'1283438827'}, {u'Url': u'http://listen.grooveshark.com/playlist/Simian_Mobile_Disco_Attack_Decay_Sustain_Release/35054649', u'Cache': {u'FromCache': False}, u'PlaylistID': u'35054649', u'Name': u'Simian Mobile Disco - Attack Decay Sustain Release', u'ModifiedTime': u'1283640118'}, {u'Url': u'http://listen.grooveshark.com/playlist/Salem_King_Knight/35268471', u'Cache': {u'FromCache': True}, u'PlaylistID': u'35268471', u'Name': u'Salem - King Knight', u'ModifiedTime': u'1283972703'}, {u'Url': u'http://listen.grooveshark.com/playlist/Maxence_Cyrin_Novo_Piano/36527813', u'Cache': {u'FromCache': True}, u'PlaylistID': u'36527813', u'Name': u'Maxence Cyrin - Novo Piano', u'ModifiedTime': u'1285872470'}, {u'Url': u'http://listen.grooveshark.com/playlist/Fingerlick_Buttons_Tarot_Sport/33635471', u'Cache': {u'FromCache': True}, u'PlaylistID': u'33635471', u'Name': u'Fingerlick Buttons - Tarot Sport', u'ModifiedTime': u'1281633330'}, {u'Url': u'http://listen.grooveshark.com/playlist/Scrappy/37988906', u'Cache': {u'FromCache': True}, u'PlaylistID': u'37988906', u'Name': u'Scrappy', u'ModifiedTime': u'1287967005'}, {u'Url': u'http://listen.grooveshark.com/playlist/The_Green_Album_Omer_Saar/40654922', u'Cache': {u'FromCache': True}, u'PlaylistID': u'40654922', u'Name': u'The Green Album - Omer Saar', u'ModifiedTime': u'1291818391'}, {u'Url': u'http://listen.grooveshark.com/playlist/Murdered_Out/7479852', u'Cache': {u'FromCache': True}, u'PlaylistID': u'7479852', u'Name': u'Murdered Out', u'ModifiedTime': u'1236897259'}, {u'Url': u'http://listen.grooveshark.com/playlist/Hot_and_Tired/27931954', u'Cache': {u'FromCache': True}, u'PlaylistID': u'27931954', u'Name': u'Hot and Tired', u'ModifiedTime': u'1271772133'}, {u'Url': u'http://listen.grooveshark.com/playlist/SawTooth_Bass/18284890', u'Cache': {u'FromCache': False}, u'PlaylistID': u'18284890', u'Name': u'Saw-Tooth Bass', u'ModifiedTime': u'1256910446'}, {u'Url': u'http://listen.grooveshark.com/playlist//\\/\\/\\/\\/\\/\\//27216709', u'Cache': {u'FromCache': False}, u'PlaylistID': u'27216709', u'Name': u'/\\/\\/\\/\\/\\/\\/', u'ModifiedTime': u'1270332371'}, {u'Url': u'http://listen.grooveshark.com/playlist/ISO50_Playlist_#10/38892561', u'Cache': {u'FromCache': True}, u'PlaylistID': u'38892561', u'Name': u'ISO50 Playlist #10', u'ModifiedTime': u'1289155227'}, {u'Url': u'http://listen.grooveshark.com/playlist/Chill_Rap/4516', u'Cache': {u'FromCache': True}, u'PlaylistID': u'4516', u'Name': u'Chill Rap', u'ModifiedTime': u'1201712529'}, {u'Url': u'http://listen.grooveshark.com/playlist/The_Basement/29007410', u'Cache': {u'FromCache': True}, u'PlaylistID': u'29007410', u'Name': u'The Basement', u'ModifiedTime': u'1273668603'}, {u'Url': u'http://listen.grooveshark.com/playlist/Fingerlicking_Awesome_Mashups/36954458', u'Cache': {u'FromCache': True}, u'PlaylistID': u'36954458', u'Name': u'Fingerlicking Awesome Mashups', u'ModifiedTime': u'1286489257'}, {u'Url': u'http://listen.grooveshark.com/playlist/The_Augustine/29939116', u'Cache': {u'FromCache': True}, u'PlaylistID': u'29939116', u'Name': u'The Augustine', u'ModifiedTime': u'1275215560'}, {u'Url': u'http://listen.grooveshark.com/playlist/Best_Of_Wu/15335431', u'Cache': {u'FromCache': True}, u'PlaylistID': u'15335431', u'Name': u'Best Of Wu', u'ModifiedTime': u'1250298301'}, {u'Url': u'http://listen.grooveshark.com/playlist/ISO50_Presents:_Dry_Waves/40210604', u'Cache': {u'FromCache': True}, u'PlaylistID': u'40210604', u'Name': u'ISO50 Presents: Dry Waves', u'ModifiedTime': u'1291138412'}, {u'Url': u'http://listen.grooveshark.com/playlist/ReUp_Gang_We_Got_It_4_Cheap_Volume_3/43589616', u'Cache': {u'FromCache': True}, u'PlaylistID': u'43589616', u'Name': u'Re-Up Gang - We Got It 4 Cheap Volume 3', u'ModifiedTime': u'1297612447'}, {u'Url': u'http://listen.grooveshark.com/playlist/ISO50_Playlist_#9/35248549', u'Cache': {u'FromCache': True}, u'PlaylistID': u'35248549', u'Name': u'ISO50 Playlist #9', u'ModifiedTime': u'1283952285'}, {u'Url': u'http://listen.grooveshark.com/playlist/PostRock_Playboy/6183030', u'Cache': {u'FromCache': True}, u'PlaylistID': u'6183030', u'Name': u'Post-Rock Playboy', u'ModifiedTime': u'1236008915'}, {u'Url': u'http://listen.grooveshark.com/playlist/Ambient_Electronic/376180', u'Cache': {u'FromCache': True}, u'PlaylistID': u'376180', u'Name': u'Ambient Electronic', u'ModifiedTime': u'1229023391'}, {u'Url': u'http://listen.grooveshark.com/playlist/Man_On_The_Moon_II:_The_Legend_Of_Mr._Rager/38994029', u'Cache': {u'FromCache': True}, u'PlaylistID': u'38994029', u'Name': u'Man On The Moon II: The Legend Of Mr. Rager', u'ModifiedTime': u'1289301711'}, {u'Url': u'http://listen.grooveshark.com/playlist/Ghostface_Killah_Apollo_Kids/43155947', u'Cache': {u'FromCache': True}, u'PlaylistID': u'43155947', u'Name': u'Ghostface Killah - Apollo Kids', u'ModifiedTime': u'1296741352'}, {u'Url': u'http://listen.grooveshark.com/playlist/All_Funk/2528', u'Cache': {u'FromCache': True}, u'PlaylistID': u'2528', u'Name': u'All Funk', u'ModifiedTime': u'1195084800'}, {u'Url': u'http://listen.grooveshark.com/playlist/Bearbot_Evocation/39236538', u'Cache': {u'FromCache': True}, u'PlaylistID': u'39236538', u'Name': u'Bearbot - Evocation', u'ModifiedTime': u'1289595559'}], u'Success': True, u'RateLimit': {u'CacheBusts': 0, u'ResetTime': 1300238204, u'CallsRemaining': 151, u'CallsMade': 48, u'RemainingSecs': 1256}}
对于结果中的每个项目,我需要以下信息:

•Url •播放ID •名称

但是我想知道在将数据传递到django模板之前是否需要在my views.py中整理/排序这些数据?然后我如何循环通过这个,这样我就可以

  • 结果1:URL、播放ID、名称
  • 结果2:URL、播放ID、名称
  • 结果3:URL、播放ID、名称
  • 结果4:URL、播放ID、名称等
我正在学习python,因此非常感谢您的帮助或建议

谢谢
Jon

一旦使用Python的
json
simplejson
模块
将json数据加载到Python对象中,所有内容都应该在模板中工作

在发送东西到你的模板之前,我会像这样取出结果

def foo_view(request):
    ....
    decoded_json = json.loads(json_string)
    return render_to_response('foo.html',{'results':decoded_json['Result']})
<ul id="results">
     {% for result in results %}
     <li>Result{{ forloop.counter }}: {{ result.URL }}, {{ result.PlaylistID }}, {{ result.Name }} ...</li>
     {% endfor %}
</ul>
这样,在你的模板中,你就可以像这样处理每个结果

def foo_view(request):
    ....
    decoded_json = json.loads(json_string)
    return render_to_response('foo.html',{'results':decoded_json['Result']})
<ul id="results">
     {% for result in results %}
     <li>Result{{ forloop.counter }}: {{ result.URL }}, {{ result.PlaylistID }}, {{ result.Name }} ...</li>
     {% endfor %}
</ul>
    {结果中的结果为%}
  • 结果{forloop.counter}:{{Result.URL},{{Result.playlid},{{Result.Name}
  • {%endfor%}

输出中的数据将以与JSON数组中相同的顺序出现在
Results
。如果需要对数据进行排序,则需要在视图中进行排序,而不是在模板中进行排序。

在将字典发送到Django之前,不需要用Python进行任何进一步的预处理(除了已经完成的工作之外;使用simplejson将JSON字符串解析到字典中)。Django的模板系统非常擅长处理字典和列表

我假设您已将字典以名为
obj
的变量传递给Django

您应该能够使用for循环访问字典结果部分中的每个项:

<ul>
{% for result in obj.Result %}
    <li>{{ result.Url }}, {{ result.PlaylistID }}, {{ result.Name }}</li>
{% endfor %}
</ul>
    {obj.result%中的结果为%0}
  • {{result.Url},{{result.playlid},{{result.Name}
  • {%endfor%}

例如,将结果放在项目符号列表中,Url、播放列表和名称放在逗号分隔的列表中。

如果我们不知道obj中的键是什么,该怎么办?在b.{{iterable}}%}中,一个人能为a做{%吗??