我可以使用pandas和python-gitlab成功地读取这样的CSV:
filename = "file.csv"
f = project.files.get(file_path=filename, ref='master')
data = pd.read_csv(StringIO(str(f.decode(),'utf-8')), sep=',', header=None, names=["direction", "width", "height"])
但是我无法将正确的结构返回到json中,然后由gitlab读取为CSV。
gitlab上的csv文件示例如下所示,因此您可以看到其结构
import csv, requests
from io import StringIO
url = "https://gitlab.com/datasets_a/mpg-data/-/raw/master/mpg.csv"
# Reading URL data
s = requests.get(url).content
# Decoding & formatting
data=csv.reader(StringIO(s.decode('utf-8')))
#Printing the first 5 rows
for row in list(data)[:5]:
print(row)
而且我似乎不能将dataframe转换为json -这是我的尝试!
def make_payload_commit(project, Time, filename, data):
# payload
data = {
'branch': 'main',
'commit_message': Time,
'actions': [
{
'action': 'update',
'file_path': filename,
'content': dataframe.to_json(),
}
]
}
commit = project.commits.create(data)
gitlab不会将其注册为CSV。
将感谢任何帮助,如果有人知道如何做到这一点!
1条答案
按热度按时间ltskdhd11#
很有可能,由于一些编码问题,您的
.csv
文件无法识别。要解决此问题,您可以通过base64 module使用Base64编码对文件进行编码。下面是一个使用
pandas
和github
将您提供的文件内容上传到所选存储库的工作示例:生成的文件被上传到玩具存储库here。
您应该能够通过
gitlab
实现相同的效果,方法是将action的encoding
属性设置为base64
(参见文档),如下所示:希望这能帮上忙。