编辑:对不起,我会解释一下这个程序的用途。这是为了跟踪用户的新体重纪录。只有当它们超过了以前的重量记录时,该文件才会使用时间戳更新。我希望用户能够使用时间戳看到每个电梯的进度的时间线。这就是为什么我使用lift‘’key‘={data:dict},这样他们就可以引用每个lift类型并查询日期,例如lift’s‘snatch’--这将告诉他们当天的最大值。但我似乎无法正确地将它写入csv文件。谢谢你给我时间!星期五快乐!
我已经研究了好几天了,似乎无法弄清楚如何将数据添加到特定的Fieldname中,这是我的dict中最高级别的键。
我想要添加的数据是它自己的数据。
我是如何在CSV文件中看到它的样子的:
snatch <> squat <> jerk
10/25:150lbs <> 10/25:200lbs <> 10/25:0lbs 这就是他们创建文件时的样子。我怎么能只更新一个字段。
假设用户当天只蹲着,并希望将数据附加到Field。
到目前为止我所拥有的是:
import time
import csv
lifts={}
csv_columns = ['snatch','squat','jerk']
creation = time.strftime('%M:%S', time.localtime())
lifts['snatch']={creation:'150lbs'}
lifts['squat']={creation:'200lbs'}
lifts['jerk']={creation:'0lbs'}
try:
with open(csv_file, 'w') as csvfile:
writer = csvDictWriter(csvfile, fieldnames=csv_columns)
writer.writeheader()
for data in lifts:
writer.writerow(lifts)
except IOError as (errno, sterror):
print("Error")
return我问题的->One是,当它写入csv文件时,它写了三次。不太确定为什么。这是我想要的格式,但有三次。
->我还想实现下一段代码并写入特定的列,当我这样做时,它会在其他列中写入null或空格。
lifts['jerk'].update({time.strftime('%M:%S', time.localtime() : '160lbs'})然后输出
snatch <> squat <> jerk
10/25:150lbs <> 10/25:200lbs <> 10/25:0lbs 10/26:160lbs对不起,我刚开始使用python,不知道如何使用这个编辑器,我希望这个结果在{10/25:0lbs}下登陆,就像它在excel中显示的那样。
发布于 2015-10-22 17:30:09
了解这里发生了什么是很重要的:lifts是一本包含键字符串(“抓取”、“蹲”、“挺举”)的字典,它的值也是字典。第二层字典有时间戳字符串,用于键和字符串作为值。
我怀疑当您想要更新lifts['jerk']字典时,不会使用与现有条目相同的键(时间戳)。
第二层似乎不需要字典;考虑使用列表,但如果必须的话,您可以这样访问:lifts['jerk'][lifts['jerk'].keys()[0]] (这是相当困难的)--同样,考虑对lifts字典的值使用不同的数据类型,或者使用比时间戳更容易引用的键。
编辑:您可以做一些类似lifts['jerk'] = {'timestamp':creation,'weight':'165lbs'}的操作,这需要对数据进行一些重构。
https://stackoverflow.com/questions/33285891
复制相似问题