[英]convert list of dict to CSV string using dict_keys
我正在嘗試將字典列表轉換為 lambda function 的 csv 字符串。 我在下面編寫的代碼將數據作為鍵值。 我正在嘗試重新編寫它,以便它基於 dict_keys 工作。
import io
import csv
output = io.StringIO()
csvdata = [{"fruit": "apple", "count": "1", "color": "red"},{"fruit": "banana", "count": "2", "color": "yellow"}]
writer = csv.writer(output, quoting=csv.QUOTE_NONNUMERIC)
for i in csvdata:
for key, value in i.items():
writer.writerow([key, value])
convertedtocsv = output.getvalue()
output: '"fruit","apple"\r\n"count","1"\r\n"color","red"\r\n"fruit","banana"\r\n"count" ,"2"\r\n"顏色","黃色"\r\n'
fruit apple
count 1
color red
fruit banana
count 2
color yellow
我想要以下格式的數據
fruit count color
apple 1 red
banana 2 yellow
我知道這可以使用 .to_csv 方法在 pandas 中實現。 但我只是想在沒有 pandas 或任何第三方庫的情況下嘗試它。
任何幫助表示贊賞。 謝謝!
csv.DictWriter
csv
模塊提供了一個DictWriter
class 最適合我們處理記錄時,即需要寫入 csv 文件的字典列表
fields = ['fruit', 'count', 'color']
writer = csv.DictWriter(output, fieldnames=fields, delimiter='\t')
writer.writeheader()
writer.writerows(csvdata)
print(output.getvalue())
fruit count color
apple 1 red
banana 2 yellow
您可以通過首先寫入 header 然后為每一行寫入數據來修復它。
writer.writerow(csvdata[0].keys())
for i in csvdata:
writer.writerow(i.values())
convertedtocsv = output.getvalue()
print(convertedtocsv)
在序列化程序中工作,我必須將數據作為字符串發送,但作為 csv,我得到了這個轉換,如果它對任何人都有幫助
to_csv = [
{'name': 'bob', 'age': 25, 'weight': 200},
{'name': 'jim', 'age': 31, 'weight': 180},
]
keys = to_csv[0].keys()
result = [list(keys)] + [list(row.values()) for row in to_csv]
# [['name', 'age', 'weight'], ['bob', 25, 200], ['jim', 31, 180]]
str_result = '\n'.join([';'.join(str(val) for val in row) for row in result])
# 'name;age;weight\nbob;25;200\njim;31;180'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.