我是新人,如果有人能帮助我,我会寻求帮助。我已经能够用定义的可变权重的输出创建一个文本文件。但它写入/打印/发布的数据比我需要的要多得多。下面是我拥有的.py中的以下内容。
#!/usr/bin/python
import myfitnesspal
import requests
import lxml
import measurement
import six
import mock
import datetime
client = myfitnesspal.Client('username', 'password')
weight = client.get_measurements('Weight')
print weight
file = open("ChrisFitPal.txt", "w")
file.write(repr(weight) + '\n' )
file.close()
我得到的输出是文本文件中的以下内容,但我只希望它显示文本的一小段
这是它在文本文件中显示的内容
OrderedDict((datetime.date(2019,1,2),174.4),(datetime.date(2018年,12,26),175.6),(datetime.date(2018年,12,21),175.1),(datetime.date(2018年,12,13),173.2),(datetime.date(2018,12,7),175.0))
我只想让文本文件显示粗体和斜体的数字,而不是其他的数字。所以输出应该是
174.4
这个是可能的吗?
发布于 2019-01-04 06:38:17
您可以更改:
file.write(repr(weight) + '\n' )
至:
file.write(a[next(iter(a))] + '\n' )
其中:
a = OrderedDict([(datetime.date(2019, 1, 2), 174.4), (datetime.date(2018, 12, 26), 175.6), (datetime.date(2018, 12, 21), 175.1), (datetime.date(2018, 12, 13), 173.2), (datetime.date(2018, 12, 7), 175.0)])
这将为您提供一个OrderedDict
值的迭代器对象。调用next
将迭代器前进1,给出第一项的关键字。然后,您可以使用该键来访问针对该键存储的值。Raymond Hettinger in this answer提供了一些选项
发布于 2019-01-04 06:41:01
看起来您将从client.get_measurements('Weight')
返回一个字典,因此您可以将其转换为一个列表,并对其进行索引以仅获取特定的条目
d={'a':1,'b':2,'c':3}
list(d.items())
[('a', 1), ('b', 2), ('c', 3)]
list(d.items())[0]
('a', 1)
list(d.items())[0][1]
1
https://stackoverflow.com/questions/54030726
复制相似问题