小编rak*_*esh的帖子

使用 dict_keys 将 dict 列表转换为 CSV 字符串

我正在尝试将 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 或任何第三方库的情况下尝试一下。

任何帮助表示赞赏。谢谢!

python csv dictionary

4
推荐指数
1
解决办法
5599
查看次数

Python:什么是拼合字典列表的最佳方法

我如何拼合带有嵌套字典的字典列表,说我有以下字典:

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)

python dictionary

1
推荐指数
1
解决办法
49
查看次数

比较列并在mysql(或)python pandas中生成重复的行

我是 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)

加工后

谢谢!!!

python mysql union pandas

1
推荐指数
1
解决办法
55
查看次数

标签 统计

python ×3

dictionary ×2

csv ×1

mysql ×1

pandas ×1

union ×1