Python csv 导出不适用于 header 匹配行的统一模式
Python csv export doesn't work in uniform pattern with header matching rows
我是 Python 的新手,我正在尝试使用 headers 将我的输出导出到 CSV:工件,大小。下面是它的 python 代码。
import requests
import json
import csv
with open('content.csv', 'w') as csvfile:
headers = ['Artifacts', 'Size']
writer = csv.writer(csvfile)
writer.writerow(headers)
with open('file_list.txt') as file:
for line in file:
url = "http://fqdn/repository/{0}/{1}?describe=json".format(repo_name, line.strip())
response = requests.get(url)
json_data = response.text
data = json.loads(json_data)
for size in data['items']:
if size['name'] == 'Payload':
value_size= size['value']['Size']
if value_size != -1:
with open('content.csv', 'a') as fileappend:
data_writer = csv.writer(fileappend)
data_writer.writerow({line.strip(), str(value_size)})
我遇到的问题是,我没有看到预期的 csv 文件,其中 Artifacts 列带有工件名称,Size 列带有它们的大小,相反,我看到的是混合模式,其中一些行是正确的,一些行是正确的的行首先显示大小,然后显示工件。
另一个问题(不是那么重要)是在 Excel.
中打开时每行之间添加的空行间隙
CSV 数据示例
Artifacts,Size
3369,mysql.odbc/5.1.14
641361,curl/7.24.0
2142246,curl/7.24.0.20120225
2163958,curl/7.25.0
curl/7.55.0,3990517
curl/7.55.1,3991943
3875614,curl/7.54.1
curl/7.58.0,3690457
putty.portable/0.67,4201
6227,notepadplusplus/7.5.4
4407,openjdk8/8.242.8.1
5453,dotnetcore-sdk/3.1.201
4405,openjdk8/8.252.9
非常感谢任何帮助。
您正在将 set
作为参数发送给 write_row()
。
set
对象是 hash-based,因此不一定保持顺序。
您应该改用 list
或 tuple
。
在你的最后一行:
# replace curly brackets with square brackets
data_writer.writerow([line.strip(), str(value_size)])
我是 Python 的新手,我正在尝试使用 headers 将我的输出导出到 CSV:工件,大小。下面是它的 python 代码。
import requests
import json
import csv
with open('content.csv', 'w') as csvfile:
headers = ['Artifacts', 'Size']
writer = csv.writer(csvfile)
writer.writerow(headers)
with open('file_list.txt') as file:
for line in file:
url = "http://fqdn/repository/{0}/{1}?describe=json".format(repo_name, line.strip())
response = requests.get(url)
json_data = response.text
data = json.loads(json_data)
for size in data['items']:
if size['name'] == 'Payload':
value_size= size['value']['Size']
if value_size != -1:
with open('content.csv', 'a') as fileappend:
data_writer = csv.writer(fileappend)
data_writer.writerow({line.strip(), str(value_size)})
我遇到的问题是,我没有看到预期的 csv 文件,其中 Artifacts 列带有工件名称,Size 列带有它们的大小,相反,我看到的是混合模式,其中一些行是正确的,一些行是正确的的行首先显示大小,然后显示工件。
另一个问题(不是那么重要)是在 Excel.
中打开时每行之间添加的空行间隙CSV 数据示例
Artifacts,Size
3369,mysql.odbc/5.1.14
641361,curl/7.24.0
2142246,curl/7.24.0.20120225
2163958,curl/7.25.0
curl/7.55.0,3990517
curl/7.55.1,3991943
3875614,curl/7.54.1
curl/7.58.0,3690457
putty.portable/0.67,4201
6227,notepadplusplus/7.5.4
4407,openjdk8/8.242.8.1
5453,dotnetcore-sdk/3.1.201
4405,openjdk8/8.252.9
非常感谢任何帮助。
您正在将 set
作为参数发送给 write_row()
。
set
对象是 hash-based,因此不一定保持顺序。
您应该改用 list
或 tuple
。
在你的最后一行:
# replace curly brackets with square brackets
data_writer.writerow([line.strip(), str(value_size)])