将数组转为JSON格式

0 投票
1 回答
530 浏览
提问于 2025-04-18 14:31

我有以下内容:

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"}]

如果有人在想,我用这个来测试我将如何实现我的实际数据库。

撰写回答