json 中的枚举值
enumeration values in json
做一个简单的筛选值。但不明白为什么只取几个值,而不是整个列表。
我使用用 python 编写的 CGI。显示 136 个值,但在文件中超过 1000 个值。
#!/usr/bin/python
import json
import cgi
import cgitb
import sys
reload(sys)
sys.setdefaultencoding('utf8')
form = cgi.FieldStorage()
cityRu = form.getvalue('city')
print ("Content-type: text/html")
print ("")
cities = json.loads(open('json/cities.json').read())
ourResult = cities
for rs in ourResult:
print (rs['name_translations']['en']+' - '+rs['name_translations']['ru'])
问题是 dict
对象之一没有密钥 'ru'
,所以如果需要,请使用它:
#!/usr/bin/python
import json
import cgi
import cgitb
import sys
reload(sys)
sys.setdefaultencoding('utf8')
form = cgi.FieldStorage()
cityRu = form.getvalue('city')
print ("Content-type: text/html")
print ("")
cities = json.loads(open('json/cities.json').read())
ourResult = cities
for rs in ourResult:
try:
print (rs['name_translations']['en']+' - '+rs['name_translations']['ru'])
except KeyError:
print ("ERROR WITH KEYS")
# do something else...
您也可以这样做:
#!/usr/bin/python
import json
import cgi
import cgitb
import sys
reload(sys)
sys.setdefaultencoding('utf8')
form = cgi.FieldStorage()
cityRu = form.getvalue('city')
print ("Content-type: text/html")
print ("")
with open('json/cities.json') as jf:
cities = json.load(jf)
cities_with_ru = filter(lambda x: 'ru' in x['name_translations'], cities)
for rs in cities_with_ru:
print (rs['name_translations']['en']+' - '+rs['name_translations']['ru'])
这可能会更好,但我不确定您要做什么。列表中的所有项目似乎都存在 'en'
,但您应该验证。
做一个简单的筛选值。但不明白为什么只取几个值,而不是整个列表。 我使用用 python 编写的 CGI。显示 136 个值,但在文件中超过 1000 个值。
#!/usr/bin/python
import json
import cgi
import cgitb
import sys
reload(sys)
sys.setdefaultencoding('utf8')
form = cgi.FieldStorage()
cityRu = form.getvalue('city')
print ("Content-type: text/html")
print ("")
cities = json.loads(open('json/cities.json').read())
ourResult = cities
for rs in ourResult:
print (rs['name_translations']['en']+' - '+rs['name_translations']['ru'])
问题是 dict
对象之一没有密钥 'ru'
,所以如果需要,请使用它:
#!/usr/bin/python
import json
import cgi
import cgitb
import sys
reload(sys)
sys.setdefaultencoding('utf8')
form = cgi.FieldStorage()
cityRu = form.getvalue('city')
print ("Content-type: text/html")
print ("")
cities = json.loads(open('json/cities.json').read())
ourResult = cities
for rs in ourResult:
try:
print (rs['name_translations']['en']+' - '+rs['name_translations']['ru'])
except KeyError:
print ("ERROR WITH KEYS")
# do something else...
您也可以这样做:
#!/usr/bin/python
import json
import cgi
import cgitb
import sys
reload(sys)
sys.setdefaultencoding('utf8')
form = cgi.FieldStorage()
cityRu = form.getvalue('city')
print ("Content-type: text/html")
print ("")
with open('json/cities.json') as jf:
cities = json.load(jf)
cities_with_ru = filter(lambda x: 'ru' in x['name_translations'], cities)
for rs in cities_with_ru:
print (rs['name_translations']['en']+' - '+rs['name_translations']['ru'])
这可能会更好,但我不确定您要做什么。列表中的所有项目似乎都存在 'en'
,但您应该验证。