2016-09-20 2 views
-2

Я прочитал текстовый файл и вставил данные в Riak DB с помощью python.удалить u 'infront из json data

csv_data = csv.reader(file('abc.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 я использовать 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]) 

и он дает в коврик

Динеш - {u'friendlist ': [u'Bakshi', и»Kishna '], u'is_active': Правда, u'user ': u'Dinesh'}

Вот как я могу удалить u в формате вывода? Преобразует ли строка в строку при вставке в Riak, чтобы сформировать u?

Редактировать 1

Я принес Riak БД с помощью MapReduce

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]) 

В приведенном выше, как, например, случае, он должен возвращать верно, но это дает ошибку. Поэтому я думаю, что это связано с u. Теперь, как я могу сравнить массив и узнать случай соответствия? здесь, я думаю, я ошибся в условии.

+0

'u' просто означает unicode, он фактически не существует; это просто визуальный маркер при печати данных. Однако 'Dinesh' не JSON, а словарь Python. – roganjosh

+0

Данные, полученные из Riak, отформатированы, как в примере выше. Я хочу сравнить значения (сравнивая условие, как указано выше), тогда он дает ошибку. Для примера, подобного выше, он должен возвращать true, но не смог его получить. – bikas

+0

Вы следили за ссылкой, помеченной как дубликат, и прочитали ответ Даниэля Роземана? Между «True» и «error» существует разница. Какая ошибка? – roganjosh

ответ

1

У вас нет данных JSON, у вас есть строковое представление словаря Python. Вам нужно явно преобразовать его в JSON с json.dumps().

+0

Я использую python для чтения текстового файла и для вставки в Riak. Здесь я фетишировал данные с помощью javascript и добавил к многомерной группировке массивов. Теперь я хочу проверить условие, как указано выше, поэтому оно возвращает true для случая, как указано в примере выше. Итак, чтобы получить этот результат, где я могу использовать json.dumps(). – bikas

Смежные вопросы