删除你面前的json数据

时间:2016-09-20 09:22:12

标签: javascript python mapreduce riak

我已经阅读了一个文本文件并使用python将数据插入Riak DB。

csv_data = csv.reader(file('abc.txt')) 

txt文件包含两个用@@

分隔的字段
tempstring = str(row).split('@@')

并插入riak DB

new_user = user_buckets.new(FirstUser,data={
                       'user':FirstUser,
                       'friendlist':FriendList,
                       'is_active':True
                        })
            new_user.store()

从Riak DB获取数据我使用Map

user_buckets.map("""
            function(v) { 
                var data = JSON.parse(v.values[0].data);
                if(data.is_active == true) { 
                    return [[v.key, data]]; 
                } 
                return []; 
            }
         """)

        for result in user_buckets.run():
            print "%s - %s" % (result[0], result[1])

并以格式

提供 Dinesh - {u'friendlist':[u'Bakshi',u'Kishna'],u'is_active':是的,你'''':'d'hinesh'}

在这里如何删除输出格式的u?插入到Riak时转换为字符串会导致形成u?

修改1

我使用mapreduce

获取了Riak DB
function(v) {
var data = JSON.parse(v.values[0].data);
var mapped = [];
var grouping = [];
if(data.is_active == true) {
       userValue = data.user;
       friendListValue = data.friendlist;
       for (var i=0; i<friendListValue.length; i++){
             friendValue = friendListValue[i];
             mapped.push([userValue, friendValue, friendListValue]);
             grouping.push([mapped[i]]);
        }
}
}

此处分组是包含

等数据的多维数组

示例

[u'Dinesh', u'Shiva', [u'Bakshi', u' Kishna', u' Hanks', u' Shiva', u' Bindu', u' Hari', u' Karma', u' Sita']]
[u'Shiva', u'Dinesh', [u'Hanks', u' Tom', u' Karma', u' Hari', u' Dinesh']]

当我使用

比较数组中的值时
if(grouping[j][0]==grouping[k][1]&& grouping[j][1]==grouping[k][0])

在上面给出的类似示例中,它应该返回true但它会给出错误。所以我认为这是由于你。现在我如何比较阵列并找出匹配案例?在这里,我认为如果有条件,我犯了一个错误。

1 个答案:

答案 0 :(得分:1)

您没有JSON数据,您拥有Python字典的字符串表示形式。您需要使用json.dumps()将其显式转换为JSON。