将数组转为JSON格式
我有以下内容:
def jsonify(ar):
json.dumps(ar._data)
jsonify(getFromTable())
getFromTable这个函数返回的是一组boto对象。每个对象都有一个叫做_data的元素。但是ar._data这个用法不行,它没有_data这个属性。
我该如何把多个对象合成一个单独的json呢?还是说这不可能?
我现在的解决方法是:
def jsonify(ar):
str=""
for i in ar:
str+=json.dumps(i._data)
print str
return str
jsonify(getFromTable())
不过我还是希望能把它们全部打印成一个json格式的内容。有没有人知道怎么做?
下面的问题已经在mGilson的帮助下解决了
另外,顺便说一下:
我在使用boto、dynamodb2、python,并且是从查询我的表时返回的懒惰评估结果集中提取数据。
1 个回答
0
@mGilson,谢谢你。这是解决这个问题的正确方法。
对于好奇的人,这里是我使用的实现代码。
def getFromTable():
global table
#t = table.scan(thirdKey__eq="Anon")
t = table.scan()
arr = []
for a in t:
arr.append(a)
return arr
def jsonify(ar):
str = json.dumps(ar)
print str
return str
def createListFromBotoObj(obj):
myList = []
for o in obj:
myList.append(o._data)
return myList
jsonify(createListFromBotoObj(getFromTable()))
这段代码会打印出预期的结果:
[{"secondKey": "Doe", "thirdKey": "Anon", "firstKey": "John"}, {"secondKey": "G", "thirdKey": "Company", "firstKey": "P"}, {"secondKey": "T", "thirdKey": "Engineer3", "firstKey": "allen"}, {"secondKey": "John", "last_name": "Doe", "firstKey": "booperface"}, {"secondKey": "The Builder", "thirdKey": "Sadness", "firstKey": "Bob"}]
如果有人在想,我用这个来测试我将如何实现我的实际数据库。