Вставка пустых элементов в коллекцию Mongodb (Pymon go) - PullRequest
0 голосов
/ 28 мая 2020

Заявление об ограничении ответственности: я новичок ie, когда дело доходит до понедельника go ..

Итак, у меня есть эти данные из текстового файла, которые я обрабатываю в «python словарь» формат, чтобы его можно было вставить в коллекцию, созданную с помощью Pymon go.

сырые данные изменены на текст, извинения ... можно просмотреть здесь на pastebin Ссылка на текст необработанных данных

И вот отформатированный словарь в python для вставки

[{'Poll_Name': 'ECU', 'Date': '2020-05-07', 'Sample_Size': '--', 'MoE': '--', 'Biden (D)': '46', 'Trump(R)': '43', 'Spread': 'Trump +3'}, {'Poll_Name': 'WRAL-TV', 'Date': '2020-04-23', 'Sample_Size': '580 LV', 'MoE': '5.5', 'Biden (D)': '45', 'Trump(R)': '50', 'Spread': 'Biden +5'}, {'Poll_Name': 'PPP (D)', 'Date': '2020-04-14', 'Sample_Size': '1318 RV', 'MoE': '2.7', 'Biden (D)': '47', 'Trump(R)': '48', 'Spread': 'Biden +1'}, {'Poll_Name': 'Civitas', 'Date': '2020-04-05', 'Sample_Size': '500 LV', 'MoE': '4.4', 'Biden (D)': '49', 'Trump(R)': '42', 'Spread': 'Trump +7'}]

У меня все данные словаря вставлены в массив, и я планирую сделать с ним insertmany () .

Вот код, который у меня есть для экспорта этих данных в формат словаря.

def export_Data(filename):
export_List = [] #list that will contain the dictionary values of the data
key_List = ["Poll_Name", "Date", "Sample_Size", "MoE", "Biden (D)", "Trump(R)", "Spread"] #list of keys for each value
count = 0 
temp_List = []
with(open(filename, "r")) as infile: #opening the file of raw data
    for line in infile:
        count += 1
        temp_List.append(line.strip("\n")) #i add each line of infile to this temporary list 
        if count % len(key_List) == 0: #when 7 items are added
            temp_dict = {} #create a temporary dictionary 
            for key, line in zip(key_List, temp_List): #fill in dictionary key values..
                temp_dict[key] = line
            temp_List = [] # resetting the temporary dictionary
            export_List.append(temp_dict) #appending dictionary to final list
print(export_List)
#export the list later once i get properly formatted..

Теперь, когда вы можете видеть некоторые записи, найденные как в текстовом файле, так и в образцы словаря отображаются как «-», они должны представлять пустые / нулевые значения. Я хочу вставить такие значения как null, а не "-" в свою базу данных, чтобы избежать необходимости выполнять массовый запрос на обновление в mon go, я чувствую, что это может упростить и ускорить процесс очистки / экспорта данных . Есть ли способ изменить эти значения, чтобы они могли быть вставлены как null вместо "-" Буду признателен за любые решения, я знаю, что, вероятно, есть простой ответ! но этот newb ie был бы признателен за некоторые пояснения.

1 Ответ

1 голос
/ 28 мая 2020

Вы можете явно заменить «-» любым значением по вашему выбору в этом l oop:

вместо

        temp_List.append(line.strip("\n")) 
        temp_str = line.strip("\n")
        temp_list.append(temp_str if (temp_str != "--") else "")

Если вы предпочитаете использовать null или undefined или «Не предоставлено» или что-то еще, просто замените "" на то, что вы хотите использовать.

...