如何从python IO流中删除最后一个字符

问题描述 投票:1回答:2
import io
my_list = [{'id': 1, 'updated_at': 20}, {'id': 2, 'updated_at': 10} ]
string_out = io.StringIO()
first_obj = my_list[0]
keys = first_obj.keys()
for i in keys:
    string_out.write(i)
    string_out.write(",")

print(string_out.getvalue())

输出:-id,updated_at,

我要从我的信息流中删除最后一个“,”(逗号)。?

我想删除最后一个可能是我在这里使用过的字符只是为了示例的字符。

python iostream
2个回答
1
投票

您可以使用join,这样写,

>>> import io
>>> my_list = [{'id': 1, 'updated_at': 20}, {'id': 2, 'updated_at': 10} ]
>>> string_out = io.StringIO()
>>> first_obj = my_list[0]
>>> keys = first_obj.keys()
>>> string_out.write(','.join(keys))
13
>>> print(string_out.getvalue())
id,updated_at
>>> 

或更好,

>>> string_out = io.StringIO()
>>> my_list
[{'id': 1, 'updated_at': 20}, {'id': 2, 'updated_at': 10}]
>>> for idx,d in enumerate(my_list):
...   if idx == 0:
...     string_out.write(','.join(d.keys()) + '\n')
...   string_out.write(','.join(str(x) for x in d.values()) + '\n')
... 
14
5
5
>>> print(string_out.getvalue())
id,updated_at
1,20
2,10

1
投票

这可以通过在元素前添加逗号添加行并具有确保在第一个元素之前不添加逗号的标志来解决

import io
my_list = [{'id': 1, 'updated_at': 20}, {'id': 2, 'updated_at': 10} ]
string_out = io.StringIO()
first_obj = my_list[0]
keys = first_obj.keys()
flag=0
for i in keys:
    if(flag==0):
        flag=1
    else:
        string_out.write(",")

    string_out.write(i)    


print(string_out.getvalue())
© www.soinside.com 2019 - 2024. All rights reserved.