Как удалить квадратные скобки и u char из данных json

#python #json #python-2.7

#python #json #python-2.7

Вопрос:

Я читаю файл json и получаю информацию, отформатированную таким образом

 [{u'brand': [u'ABARTH']}, {u'brand': [u'ALFA ROMEO']} ...
  

Я могу выполнять итерации по нему, выполняя каждое вычисление с данными, но я не могу удалить символ u и квадратные скобки, когда я выполняю итерацию по списку, чтобы распечатать все элементы

Вы знаете, как я могу это сделать?

Это код, который я использую

 import json

data = json.loads(open('brands.json').read())

for item in data:
    print str(item['brand']).lower().replace(' ', '-')
  

Комментарии:

1. То, что у вас здесь есть, — это представление терминов и списков python. Вы не можете удалить скобки, потому что они существуют только в выходных данных. Покажите код, который у вас есть на данный момент, чтобы увидеть, в чем ваша проблема.

2. Я обновил вопрос, показывающий код

3. Пожалуйста, кто-нибудь может сказать мне, что голосовать против? все люди, которые голосуют против, не давая объяснений, — глупые люди

Ответ №1:

Вам не нужно ничего «удалять». У вас есть словарь, каждое из значений которого является списком. Вызов str списка покажет повторение элементов в нем. Если вы этого не хотите, выведите элементы списка:

 for item in data:
    print ', '.join(item['brand'])
  

Комментарии:

1. При этом значения печатаются без u и квадратных скобок

Ответ №2:

Поскольку значение для каждого 'brand' ключа в каждом словаре является list объектом, вам нужно выполнить индексацию в нем примерно так — который печатает первый элемент в каждом из этих списков:

 data = [{u'brand': [u'ABARTH']},
        {u'brand': [u'ALFA ROMEO']},
        {u'brand': [u'FORD']}]

for item in data:
    print item['brand'][0].lower().replace(' ', '-')
  

Вывод:

 abarth
alfa-romeo
ford