2014-10-27 6 views
0

В настоящее время я разрабатываю фильтр для ответов JSON. Я в основном смущен, почему Truth_Value в этом коде печатает как False.Сравнение ответа JSON со строкой в ​​Python

import urllib 
import json 
from urllib2 import urlopen 

entry="pocket" 
url="http://ws.spotify.com/search/1/track.json?q=" 
user_query=urllib.quote_plus(entry) 
url +=user_query 
response = urlopen(url) 
json_obj = json.load(response) 

print json.dumps(json_obj['tracks'][3]['name']) 
# This prints to "In Your Pocket" 

Truth_Value=json.dumps(json_obj['tracks'][3]['name'])=="In Your Pocket" 
print Truth_Value 

ответ

0

Как вы сказали, json.dumps(json_obj['tracks'][3]['name']) возвращается "In Your Pocket" ... но с кавычками, в то время как вы сравниваете его с строки без кавычек.

Я просто сделал простой тест:

print "// " + json.dumps(json_obj['tracks'][3]['name']) + " //" 
print "// In Your Pocket //" 

Это будет печатать:

// "In Your Pocket" // 
// In Your Pocket // 

Так что, если вы хотите Truth_value быть True, вы должны сделать

Truth_Value=json.dumps(json_obj['tracks'][3]['name'])=="\"In Your Pocket\"" 
+0

Спасибо, Я на самом деле только что увидел разницу минуту назад – courtorder52

+0

Я рад, что ты ее нашел! :) – jbihan

+0

@ courtorder52 не стесняйтесь повышать и/или принимать ответы, которые вам помогли –

Смежные вопросы