我的JSON数组如下,我想建立一个相应输出的新字符串。
我有一个简单的函数,只是为了看看我是否可以返回一个值,但是它失败了Error was expected string or buffer
def blah(myjson):
data = json.loads(myjson)
for item in data:
result = item['svn_tag']
return result
JSON:
[{'svn_tag': '20150623r3', 'module': 'api'}, {'svn_tag': '20150624r1', 'module': 'ui'}]
建议输出:
api - 20150623r3, ui - 20150623r3
答案 0 :(得分:1)
问题是json
想要用双引号而不是单引号编码的字符串和字段名称。因此,要么手动替换单引号,要么使用ast.literal_eval,因为字符串也是python有效文字:
import ast
def blah(myjson):
data = ast.literal_eval(myjson)
return ', '.join(item['module'] + ' - ' + item['svn_tag'] for item in data)
s = '''[{'svn_tag': '20150623r3', 'module': 'api'}, {'svn_tag': '20150624r1', 'module': 'ui'}]'''
print blah(s)
结果:
api - 20150623r3, ui - 20150624r1