मैं [1,2,3] की तरह int की सरणी प्राप्त करना चाहता था
लेकिन मिला [dict_values([1]),dict_values([2]),dict_values([3])]

लिया गया_कर्मचारी_आईडी_डिक्ट = [{'id': 1}, {'id': 2}, {'id': 3}]

मेरा कोड

taken_employee_ids = [str(taken_employee_ids_list.values()) for taken_employee_ids_list in taken_employee_ids_dict]

in_values_check = ','.join(str(id) for id in taken_employee_ids)

और फिर in_values_check अंदर जाना चाहिए:

qry = "SELECT CONCAT(first_name, ',', surname) AS full_name, id \
            FROM employees \
            WHERE date_terminated IS NULL \
            and id NOT IN " + "(" + in_values_check + ")" \
            " ORDER BY first_name, surname ASC"

क्षमा करें, मैं अजगर के लिए नया हूँ धन्यवाद

0
Jason Polydor 16 जिंदा 2022, 18:11
क्या आप कृपया वह पोस्ट कर सकते हैं जो taken_employee_ids_dict दिखता है?
 – 
Lukas Schneider
16 जिंदा 2022, 18:13
मैंने इसे अपडेट किया है धन्यवाद
 – 
Jason Polydor
16 जिंदा 2022, 18:14
कृपया एक न्यूनतम प्रतिलिपि प्रस्तुत करने योग्य उदाहरण प्रदान करें, यह वास्तव में आवश्यक है।
 – 
Ulrich Eckhardt
16 जिंदा 2022, 18:25

4 जवाब

सबसे बढ़िया उत्तर

आप इसे लैम्ब्डा या सूची समझ . के साथ कर सकते हैं

लैम्ब्डा के साथ,

taken_employee_ids_dict = [{'id': 1}, {'id': 2}, {'id': 3}]
in_values_check = list(map(lambda x : x['id'], taken_employee_ids_dict))
print(in_values_check)

सूची समझ के साथ,

taken_employee_ids_dict = [{'id': 1}, {'id': 2}, {'id': 3}]
in_values_check = [dic['id'] for dic in taken_employee_ids_dict]
print(in_values_check)

आउटपुट:

[1, 2, 3]
1
Always Sunny 16 जिंदा 2022, 18:27
taken_employee_ids = list(map(lambda x : x['id'], taken_employee_ids_dict)) in_values_check = ','.join(str(id) for id in taken_employee_ids)
 – 
Jason Polydor
16 जिंदा 2022, 18:32
1
बहुत - बहुत धन्यवाद
 – 
Jason Polydor
16 जिंदा 2022, 18:34
शुभकामनाएं :)
 – 
Always Sunny
16 जिंदा 2022, 18:39

इस तरह की समस्या के लिए, एक सूची समझ एक सामान्य रूप से लागू समाधान है:

taken_employee_ids_dict = [{'id': 1}, {'id': 2}, {'id': 3}]
in_values_check = [employee["id"] for employee in taken_employee_ids_dict]
print(in_values_check)

यह आउटपुट

[1, 2, 3]
3
Tom Aarsen 16 जिंदा 2022, 18:25

आप कुछ इस तरह इस्तेमाल कर सकते हैं।

taken_employee_ids_dict = [{'id': 1}, {'id': 2}, {'id': 3}]
final_list = []
for ele in taken_employee_ids_dict:
  for key,value in ele.items():
    final_list.append(value)
print(final_list)
0
udaykumar gajavalli 16 जिंदा 2022, 18:25

ये कोशिश करें:

taken_employee_ids = [str(employee["id"]) for employee in taken_employee_ids_dict]

in_values_check = ','.join(str(id) for id in taken_employee_ids)
0
Lukas Schneider 16 जिंदा 2022, 18:39
काम नहीं कर रहा मुझे विशेषता त्रुटि मिली: 'सूची' ऑब्जेक्ट में कोई विशेषता नहीं है 'मान'। के बीच मैं अजगर 3.9 का उपयोग कर रहा हूँ
 – 
Jason Polydor
16 जिंदा 2022, 18:16