删除除一个以外的所有键,但将所有值保留在python字典中

色情禁忌

我需要创建一个字典,在其中我可以将表中的所有选择属性拆分为条件,将其分为不同的列表,但是它应该只有一个键。到目前为止,我已经尝试了以下方法-

import pandas
import re
import sqlparse


query = "(select t1.id, t1.feed_id, t2.eff_dt, name, type from table1 t1 INNER JOIN table2 t2 ON ( t1.eff_dt = t2.eff_dt WHERE t2.eff_dt = CAST ( ('2020/12/20') AS DATE) and (t2.name = 'abc' or t2.name='pqr'))"
query2= "SELECT DISTINCT id, feed_id, eff_date FROM"
newInput= input('enter the eff_dt:')
new_where = '("'+newInput+'")'
query1= re.sub("(?<=WHERE t2.eff_dt = CAST \( )(.*)(?= AS DATE)", new_where , query, flags=re.IGNORECASE)
formatted_query = sqlparse.format(query1, reindent=True, keyword_case='lower')
formatted_query1 = sqlparse.format(query2, reindent=True, keyword_case='lower')

a = formatted_query.strip()
a1 = formatted_query1.strip()
newformat = a1+a
newformat.lstrip()
dict_list = newformat.split('\n')

dictOfWords = { i : dict_list[i] for i in range(0, len(dict_list) ) }

newDict = dict(zip(dictOfWords.keys(), [v.strip() if isinstance(v,str) else v for v in dictOfWords.values()]))
newDict

这将获取用户输入的日期,并给出如下输出:

enter the eff_dt:2022/01/20
{0: 'select distinct id,',
 1: 'feed_id,',
 2: 'eff_date',
 3: 'from(',
 4: 'select t1.id,',
 5: 't1.feed_id,',
 6: 't2.eff_dt,',
 7: 'name,',
 8: 'type',
 9: 'from table1 t1',
 10: 'inner join table2 t2 on (t1.eff_dt = t2.eff_dt',
 11: 'where t2.eff_dt = cast (("2022/01/20") as DATE)',
 12: "and (t2.name = 'abc'",
 13: "or t2.name='pqr'))"}

但是我需要以下输出-


{0: 'select distinct id,','feed_id,','eff_date','from(','select t1.id,','t1.feed_id,','t2.eff_dt,','name,','type','from table1 t1','inner join table2 t2 on (t1.eff_dt = t2.eff_dt','where t2.eff_dt = cast (("2022/01/20") as DATE)',"and (t2.name = 'abc'","or t2.name='pqr'))"}

有办法吗?删除除1之外的所有键,但将所有值保留在字典中。我真的很感谢您的帮助。

阿克塞·塞加尔(Akshay Sehgal)

我们来做一本新字典。

这样会将first key原始词典的保留为唯一键,并将所有值作为列表添加到该键。

# let d be the original dictionary
k,v = list(d.keys()), list(d.values())
new = {k[0]:v}
print(new)

我已经直接更新了您的代码,如果您仍然遇到错误,请告诉我。

import pandas
import re
import sqlparse


query = "(select t1.id, t1.feed_id, t2.eff_dt, name, type from table1 t1 INNER JOIN table2 t2 ON ( t1.eff_dt = t2.eff_dt WHERE t2.eff_dt = CAST ( ('2020/12/20') AS DATE) and (t2.name = 'abc' or t2.name='pqr'))"
query2= "SELECT DISTINCT id, feed_id, eff_date FROM"
newInput= input('enter the eff_dt:')
new_where = '("'+newInput+'")'
query1= re.sub("(?<=WHERE t2.eff_dt = CAST \( )(.*)(?= AS DATE)", new_where , query, flags=re.IGNORECASE)
formatted_query = sqlparse.format(query1, reindent=True, keyword_case='lower')
formatted_query1 = sqlparse.format(query2, reindent=True, keyword_case='lower')

a = formatted_query.strip()
a1 = formatted_query1.strip()
newformat = a1+a
newformat.lstrip()
dict_list = newformat.split('\n')

dictOfWords = { i : dict_list[i] for i in range(0, len(dict_list) ) }

newDict = dict(zip(dictOfWords.keys(), [v.strip() if isinstance(v,str) else v for v in dictOfWords.values()]))
k,v = list(newDict.keys()), list(newDict.values())
new = {k[0]:v}
new
{0: ['select distinct id,',
  'feed_id,',
  'eff_date',
  'from(',
  'select t1.id,',
  't1.feed_id,',
  't2.eff_dt,',
  'name,',
  'type',
  'from table1 t1',
  'inner join table2 t2 on (t1.eff_dt = t2.eff_dt',
  'where t2.eff_dt = cast (("2022/01/20") as DATE)',
  "and (t2.name = 'abc'",
  "or t2.name='pqr'))"]}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python:删除数据框的一列中的所有数据,并将最后一个值保留在第一行中

按另一个因素的级别聚合值,但将所有行保留在 R 中

将所有内容保留在Python中最后一个'/'的左侧

将所有元素保留在另一个列表中

删除所有文件夹但将所有文件保留在一个文件夹中的程序/脚本

Python列表,将所有值保留在列表的所有子列表中

如何删除一个文件夹,但将所有子文件夹和文件保留在一个git分支中?

将特定值保留在数据框中并删除所有其他值

如何从字典中获取保留在数组中的所有键

如何修复代码以删除公式,但将所有表中的值保留在APART中而不是指定的值

哪个正则表达式用于将所有内容保留在最后一个“\”字符之前

删除除一个以外的所有重复项

删除除一个以外的所有类

删除除一个以外的所有Docker容器

删除除一个SharedPreference以外的所有内容

删除除一个以外的所有.log文件

将某些列保留在pandas DataFrame中,删除其他所有内容

将某些列保留在pandas DataFrame中,删除其他所有内容

删除嵌套 Python 字典中除第一次出现以外的所有值

将方法添加的所有值保留在单独的变量中

使用LINQ从另一个属性分组的列表中删除除最大值以外的所有值

将对象保留在具有最高值的数组中,但删除所有具有重复值的对象

在DF中对数据进行分组,但将所有列保留在Python中

循环遍历字典键中的最后一个值而不是字典中的所有值

如何删除目录中除Solaris中的一个文件以外的所有文件

从StackPanel中删除除第一个项目以外的所有项目?

如何删除Cloud Firestore中除一个文件以外的所有文件?

jQuery:如何从元素中删除除最后一个类以外的所有类

转发填充除python pandas数据帧中的最后一个值以外的所有值