【问题标题】:remove u' infront of json data [duplicate]删除 json 数据前面的 u'[重复]
【发布时间】:2016-09-20 09:22:11
【问题描述】:

我已经阅读了一个文本文件并使用 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': True, u'user': u'Dinesh'}

如何在输出格式中删除 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,但它给出了错误。所以我认为这是由于你。现在我如何比较数组并找出匹配的情况?这里我认为我在 if 条件下犯了一个错误。

【问题讨论】:

  • u 仅表示 unicode,实际上并不存在;它只是打印数据时的视觉标记。但是,Dinesh 不是 JSON,而是 Python 字典。
  • 从 Riak 获取的数据格式如上例所示。我想比较这些值(如上比较条件)然后它给出了错误。对于上面的示例,它应该返回 true 但无法获取它。
  • 您是否点击了标记为重复的链接并阅读了 Daniel Roseman 的答案? True 和“错误”之间是有区别的。错误是什么?

标签: javascript python mapreduce riak


【解决方案1】:

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

【讨论】:

  • 我正在使用 python 读取文本文件并插入 Riak,在这里我使用 javascript 获取数据并添加到多维数组分组中。现在我想检查上面的条件,所以它对于上面例子中给出的情况返回 true。所以要得到这个结果,我在哪里可以使用 json.dumps()。
猜你喜欢
  • 2013-03-19
  • 2016-12-25
  • 1970-01-01
  • 1970-01-01
  • 2014-04-26
  • 2013-06-09
  • 2021-10-27
  • 2017-06-11
  • 1970-01-01
相关资源
最近更新 更多