您好我使用Python来使用纬度,经度和时间戳(unix时间)保存位置数据。使用字典
但我尝试使用append函数添加字典,我无法运行它,因为“append”无法与str一起使用
到目前为止,这是我的代码
dic_loc = {'latitude': 'Value for latitude ', 'longitude': 'Value for longitude', 'timestamp': 'Time Stamp'}
def make_timestamped_loc(La, Lng, Time):
dic_loc['latitude'].append(La)
dic_loc['longitude'].append(Lng)
dic_loc['timestamp'].append(Time)
make_timestamped_loc(37.481236, 126.952733, 1483196400)
make_timestamped_loc(37.481126, 126.952733, 1498859012)
print(dic_loc)
如果可以,我想消除现有的str值并为每个键添加新值。非常感谢你
答案 0 :(得分:2)
附加仅适用于list
,因此您无法在dict
中使用它,因为它会将string
存储在作业中。所以,你可以采取两种方式。使用list
存储值,然后使用append
或add
至string
本身。
使用list
:
dic_loc = {'latitude': ['Value for latitude '], 'longitude': ['Value for longitude'], 'timestamp': ['Time Stamp']}
def make_timestamped_loc(La, Lng, Time):
dic_loc['latitude'].append(La)
dic_loc['longitude'].append(Lng)
dic_loc['timestamp'].append(Time)
make_timestamped_loc(37.481236, 126.952733, 1483196400)
make_timestamped_loc(37.481126, 126.952733, 1498859012)
print(dic_loc)
'''
{
'latitude': ['Value for latitude ', 37.481236, 37.481126],
'longitude': ['Value for longitude', 126.952733, 126.952733],
'timestamp': ['Time Stamp', 1483196400, 1498859012]
}
'''
或strings
:
dic_loc = {'latitude': 'Value for latitude ', 'longitude': 'Value for longitude', 'timestamp': 'Time Stamp'}
def make_timestamped_loc(La, Lng, Time):
dic_loc['latitude']+= ' '+str(La)
dic_loc['longitude']+=' '+str(Lng)
dic_loc['timestamp']+=' '+str(Time)
make_timestamped_loc(37.481236, 126.952733, 1483196400)
make_timestamped_loc(37.481126, 126.952733, 1498859012)
print(dic_loc)
'''
{
'latitude': 'Value for latitude 37.481236 37.481126',
'longitude': 'Value for longitude 126.952733 126.952733',
'timestamp': 'Time Stamp 1483196400 1498859012'}
'''
如果您正在寻找:
如果可以,我想消除现有的str值并添加 每个键的新值。
您可以直接指定值:
def make_timestamped_loc(La, Lng, Time):
dic_loc['latitude'] = La
dic_loc['longitude'] = Lng
dic_loc['timestamp'] = Time
答案 1 :(得分:1)
在您的情况下,您应该指定,但追加:
...
dic_loc['latitude'] = La
答案 2 :(得分:1)
首先将密钥留空,然后追加:
dic_loc = {'latitude': [], 'longitude': [], 'timestamp': []}
def make_timestamped_loc(La, Lng, Time):
dic_loc['latitude'].append(La)
dic_loc['longitude'].append(Lng)
dic_loc['timestamp'].append(Time)
答案 3 :(得分:0)
尝试:
dic_loc = {'latitude': 'Value for latitude ', 'longitude': 'Value for longitude', 'timestamp': 'Time Stamp'}
def make_timestamped_loc(lat, lng, timestamp):
for key in ['latitude', 'longitude', 'timestamp']:
if not isinstance(dic_loc[key], list):
dic_loc[key] = [dic_loc[key]]
dic_loc['latitude'].append(lat)
dic_loc['longitude'].append(lng)
dic_loc['timestamp'].append(timestamp)
make_timestamped_loc(37.481236, 126.952733, 1483196400)
make_timestamped_loc(37.481126, 126.952733, 1498859012)
print(dic_loc)
答案 4 :(得分:0)
如果你想用最新的替换实际时间戳,我会这样做:
def make_timestamped_loc(La, Lng, Time):
return {'latitude': 'Value for latitude ' + str(La), 'longitude': 'Value for longitude' + str(Lng), 'timestamp': 'Time Stamp ' + str(Time)}
正如其他评论所述,.append(obj)
仅适用于列表对象。