Как перебирать и редактировать онлайн-файл xlsx в python - PullRequest
0 голосов
/ 09 июля 2020

В настоящее время у меня есть написанный код, который будет читать мои локальные файлы .csv и возвращать строки, соответствующие моим критериям, а также редактировать данные, хранящиеся внутри. Я пытаюсь переместить эти данные в файлы .xlsx на Sharepoint, чтобы они обновлялись для нескольких пользователей. Мне удалось использовать request.get() для доступа к странице, но я получаю сообщение об ошибке, в котором говорится, что таблиц нет. Я знаю, что в целом должны быть некоторые изменения, потому что я перехожу с .csv на .xlsx (я не хотел, но это не позволяло мне редактировать файл .csv в SharePoint, а данные должны быть обновленными), но Я борюсь с тем, почему он, похоже, не получает данные в документе .xslx. Я использую ссылку, полученную при попытке поделиться документом. Я знаю, что мой csv.reader придется изменить, но я надеялся, что смогу использовать большую часть других частей моего существующего кода.

Код, который я использовал для поиска соответствующих строк:

import csv
import pandas as pd
open_file=csv.reader(open(file,"r"),delimiter=",") #opens the desired file
    for row in open_file:
        if inputs.lower()==row[column].lower(): # if the name matches that stored in the system
            row_list.append(row)
            db=pd.DataFrame(row_list,columns=[])

Код, который я использовал для редактирования / удаления данных:

with open(file,"r") as old_data:
                read=csv.reader(old_data)
                for row in read:
                    rows.append(row)
                    if row_choice_vals[0]==row[0] and row_choice_vals[1]==row[1] and row_choice_vals[2]==row[2] and row_choice_vals[3]==row[3] and row_choice_vals[4]==row[4] and row_choice_vals[5]==row[5] and row_choice_vals[6]==row[6] and row_choice_vals[7]==row[7]:
                        rows.remove(row)
            with open(file,"w",newline="\n") as new_data:
                write=csv.writer(new_data)
                write.writerows(rows)
#then enter code for adding a new row of data (if choosing to edit)

Код для добавления новых данных:

with open("file","a",newline="\n") as file_update:
                    write=csv.writer(file_update)
                    write.writerow([information])

Код, который я использую для доступа к Файлы SharePoint:

import requests
import json
from json import loads
import pandas as pd
import io
import urllib
from requests_negotiate_sspi import HttpNegotiateAuth
headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36",
         "Accept":"application/json"}
tern=requests.get('SharePoint file',auth=HttpNegotiateAuth(),headers=headers)
db=pd.read_html(str(tern.content))


ValueError: No tables found

Я надеюсь, что эта опция будет работать через Sharepoint, но если есть какие-либо альтернативы для хранения данных в Интернете, к которым можно получить доступ через Jupyter, я готов попробовать их. Данные являются проприетарными, поэтому они не могут быть доступны для общего доступа c, что было моей проблемой в Anaconda Cloud.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...