У меня есть список, содержащий словари
[{'Name of Business' : 'Amazon', 'Contact Name' : 'Jeff Bezos', 'Email' : 'Jeff@Amazon.com'},
{ {'Name of Business' : 'Microsoft', 'Contact Name' : 'Bill Gates', 'Email' : 'Bill@Microsoft.com'}]
Позже мне нужно будет сохранить каждое имя компании, контактное лицо и т. Д. В переменной или у меня будет простой способ вызвать их для повторного использования.
Я обнаружил, что используя что-то вроде
for x in dict_list:
print x["Client"], x['Contact Name'], x['Email']
Дает мне распечатку всех данных:
Amazon Джефф Безос Джефф@Amazon.com
Microsoft Билл Гейтс Билл@Microsoft.com
Но что, если я просто хочу получить информацию из первой записи?
Что если я хочу сохранить данные из каждой словарной статьи в отдельную переменную?
С помощью
first_entry = dict_list[0]
print first_entry["Client"], first_entry['Contact Name'], first_entry['Email']
Но должен быть какой-то способ сделать это в одной строке, не создавая сначала другую переменную?
Спасибо за любую помощь, которую я могу получить!
4 ответа
Просто не создавайте переменную:
print dict_list[0]["Client"], dict_list[0]['Contact Name'], dict_list[0]['Email']
Или в цикле:
idx = [1]
for i in idx:
print dict_list[i]["Client"], dict_list[i]['Contact Name'], dict_list[i]['Email']
Ваша проблема - структура, которую вы используете для хранения данных. Я бы порекомендовал использовать фрейм данных pandas для обработки ваших данных в соответствии с необходимыми вам операциями:
import pandas as pd
df = pd.DataFrame(l)
#Out[5]:
# Contact Name Email Name of Business
#0 Jeff Bezos Jeff@Amazon.com Amazon
#1 Bill Gates Bill@Microsoft.com Microsoft
Каждая словарная запись соответствует столбцу. Вы можете получить доступ к первой записи в виде серии:
df['Name of Business']
#Out[9]:
#0 Amazon
#1 Microsoft
#Name: Name of Business, dtype: object
Или в виде списка:
df['Name of Business'].tolist()
#Out[8]: ['Amazon', 'Microsoft']
Что если я хочу сохранить данные из каждой словарной статьи в отдельную переменную?
Для этого вы можете использовать понимание списка или map()
, например, для первого элемента списка:
client, contact, email = map(dict_list[0].get, ("Client", "Contact Name", "Email"))
print dict_list[0]["Client"], dict_list[0]['Contact Name'], dict_list[0]['Email']
Похожие вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.