我正在尝试将 dict 列表转换为 lambda 函数的 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()
Run Code Online (Sandbox Code Playgroud)
输出:'“水果”,“苹果”\r\n“计数”,“1”\r\n“颜色”,“红色”\r\n“水果”,“香蕉”\r\n“计数” ,"2"\r\n"颜色","黄色"\r\n'
fruit apple
count 1
color red
fruit banana
count 2
color yellow
Run Code Online (Sandbox Code Playgroud)
我想要以下格式的数据
fruit count color
apple 1 red
banana 2 yellow
Run Code Online (Sandbox Code Playgroud)
我知道这可以在 pandas 中使用 .to_csv 方法来实现。但我只是想在没有 pandas 或任何第三方库的情况下尝试一下。
任何帮助表示赞赏。谢谢!
我如何拼合带有嵌套字典的字典列表,说我有以下字典:
data = [
{ 'Name':'xyx',
'Age':22,
'EmpDetails':{'Salary':100,'Job':'Intern','Location':'TER'}
},
{ 'Name':'abc',
'Age':23,
'EmpDetails':{'JoinDate':'20110912','Salary':200,'Job':'Intern2','Location':'TER2'}
},
{'Name':'efg',
'Age':24,
'EmpDetails':{'JoinDate':'20110912','enddate':'20120912','Salary':300,'Job':'Intern3','Location':'TER3'}
}
]
Run Code Online (Sandbox Code Playgroud)
我需要删除EmpDetails节点并将其值上移一个级别,如下所示
data = [
{ 'Name':'xyx','Age':22,'Salary':100,'Job':'Intern','Location':'TER'},
{ 'Name':'abc','Age':23,'JoinDate':'20110912','Salary':200,'Job':'Intern2','Location':'TER2'},
{'Name':'efg','Age':24,'JoinDate':'20110912','enddate':'20120912','Salary':300,'Job':'Intern3','Location':'TER3'}
]
Run Code Online (Sandbox Code Playgroud)
我现在在下面使用它,有没有更快的方法呢?
newlist = []
for d in data:
empdict ={}
for key, val in d.items():
if(key!='EmpDetails'):
empdict[key] = val
if(key=='EmpDetails'):
for key2, val2 in val.items():
empdict[key2] = val2
newlist.append(empdict)
Run Code Online (Sandbox Code Playgroud) 我是 Mysql 的新手,刚刚开始了解一些基本概念。我一直在努力解决这个问题。任何帮助表示赞赏。
我有一个有两个电话号码的用户列表。如果两列中的数据不同,我想比较两列(电话号码)并生成一个新行,否则保留该行并且不做任何更改。
处理后的数据看起来像第二个表。
有什么办法可以在 MySql 中实现这一点。我也不介意在数据框中进行转换然后加载到表中。
id username primary_phone landline
1 John 222 222
2 Michael 123 121
3 lucy 456 456
4 Anderson 900 901
Run Code Online (Sandbox Code Playgroud)
谢谢!!!