我有一个下面的python代码,它将数据写入csv文件。
from StringIO import StringIO
import unicodecsv as csv
res_io = StringIO()
csv_writer = csv.DictWriter(
res_io, encoding='utf-8', fieldnames=header,
delimiter=str(','), quoting=csv.QUOTE_NONNUMERIC
)
# PyCharm Debugger
# results: <type 'list'>: [{'review': {u'a': u'foo', u'b': u'bar'}, 'id': '1'}]
csv_writer.writerows(results)
输出我得到CSV,u
前面有键和值,我不需要输出CSV。
CSV中的预期输出(我手动编辑了上面的输出):
答案 0 :(得分:2)
也许你想要使用JSON代替一致的输出
>>> json.dumps({u'a': u'foo', u'b': u'bar'}, sort_keys=True)
'{"a": "foo", "b": "bar"}'
作为奖励,使用sort_keys=True
键将按字母顺序排列。
from StringIO import StringIO
import unicodecsv as csv
import json
res_io = StringIO()
csv_writer = csv.DictWriter(
res_io, encoding='utf-8', fieldnames=header,
delimiter=str(','), quoting=csv.QUOTE_NONNUMERIC
)
# PyCharm Debugger
# results: <type 'list'>: [{'review': {u'a': u'foo', u'b': u'bar'}, 'id': '1'}]
csv_writer.writerows({'id': i['id'],
'review': json.dumps(i['review'], sort_keys=True)}
for i in results)
答案 1 :(得分:0)
template< typename T, typename U >
inline std::unique_ptr< T > dynamic_pointer_cast(std::unique_ptr< U > &&ptr) {
return std::unique_ptr< T >(dynamic_cast< T * >(ptr.release()));
}