Hướng dẫn convert ordereddict to dict python - chuyển đổi lệnh có lệnh thành dict python

Tôi đang vật lộn với vấn đề sau: Tôi muốn chuyển đổi một

{'method': 'constant', 'data':1.225}
8 như thế này:

OrderedDict[[['method', 'constant'], ['data', '1.225']]]

thành một câu chuyện thường xuyên như thế này:

{'method': 'constant', 'data':1.225}

Bởi vì tôi phải lưu trữ nó dưới dạng chuỗi trong cơ sở dữ liệu. Sau khi chuyển đổi, thứ tự không còn quan trọng nữa, vì vậy tôi có thể dự phòng tính năng được đặt hàng.

Cảm ơn vì bất kỳ gợi ý hoặc giải pháp nào,

Ben

iruvar

22.1k6 Huy hiệu vàng51 Huy hiệu bạc81 Huy hiệu đồng6 gold badges51 silver badges81 bronze badges

Đã hỏi ngày 23 tháng 11 năm 2013 lúc 19:21Nov 23, 2013 at 19:21

2

>>> from collections import OrderedDict
>>> OrderedDict[[['method', 'constant'], ['data', '1.225']]]
OrderedDict[[['method', 'constant'], ['data', '1.225']]]
>>> dict[OrderedDict[[['method', 'constant'], ['data', '1.225']]]]
{'data': '1.225', 'method': 'constant'}
>>>

Tuy nhiên, để lưu trữ nó trong cơ sở dữ liệu, sẽ tốt hơn nhiều khi chuyển đổi nó thành một định dạng như JSON hoặc Pickle. Với dưa chua, bạn thậm chí còn bảo tồn đơn đặt hàng!

Đã trả lời ngày 23 tháng 11 năm 2013 lúc 19:33Nov 23, 2013 at 19:33

ThiefmasterthiefmasterThiefMaster

303K79 Huy hiệu vàng582 Huy hiệu bạc625 Huy hiệu Đồng79 gold badges582 silver badges625 bronze badges

8

Mặc dù đây là một câu hỏi năm tuổi, tôi muốn nói rằng việc sử dụng

{'method': 'constant', 'data':1.225}
9 sẽ không giúp ích gì nếu bạn có một mệnh lệnh được đặt hàng trong phạm vi theo lệnh. Cách đơn giản nhất có thể chuyển đổi những điều tự do đó được đặt hàng sẽ là

import json
from collections import OrderedDict
input_dict = OrderedDict[[['method', 'constant'], ['recursive', OrderedDict[[['m', 'c']]]]]]
output_dict = json.loads[json.dumps[input_dict]]
print output_dict

John Kugelman

337K67 Huy hiệu vàng509 Huy hiệu bạc560 Huy hiệu Đồng67 gold badges509 silver badges560 bronze badges

Đã trả lời ngày 9 tháng 12 năm 2014 lúc 6:50Dec 9, 2014 at 6:50

Thiruvenkadamthiruvenkadamthiruvenkadam

4.0283 Huy hiệu vàng26 Huy hiệu bạc26 Huy hiệu đồng3 gold badges26 silver badges26 bronze badges

1

Thật dễ dàng để chuyển đổi

{'method': 'constant', 'data':1.225}
8 của bạn thành một
>>> from collections import OrderedDict
>>> OrderedDict[[['method', 'constant'], ['data', '1.225']]]
OrderedDict[[['method', 'constant'], ['data', '1.225']]]
>>> dict[OrderedDict[[['method', 'constant'], ['data', '1.225']]]]
{'data': '1.225', 'method': 'constant'}
>>>
1 thông thường như thế này:

dict[OrderedDict[[['method', 'constant'], ['data', '1.225']]]]

Nếu bạn phải lưu trữ nó dưới dạng chuỗi trong cơ sở dữ liệu của bạn, sử dụng JSON là cách để đi. Điều đó cũng khá đơn giản và thậm chí bạn không phải lo lắng về việc chuyển đổi thành

{'method': 'constant', 'data':1.225}
9 thông thường:

import json
d = OrderedDict[[['method', 'constant'], ['data', '1.225']]]
dString = json.dumps[d]

Hoặc gửi dữ liệu trực tiếp vào một tệp:

with open['outFile.txt','w'] as o:
    json.dump[d, o]

Đã trả lời ngày 23 tháng 11 năm 2013 lúc 19:54Nov 23, 2013 at 19:54

Kyle Nearykyle gầnKyle Neary

8696 Huy hiệu bạc6 Huy hiệu Đồng6 silver badges6 bronze badges

Nếu bạn đang tìm kiếm một phiên bản đệ quy mà không sử dụng mô -đun

>>> from collections import OrderedDict
>>> OrderedDict[[['method', 'constant'], ['data', '1.225']]]
OrderedDict[[['method', 'constant'], ['data', '1.225']]]
>>> dict[OrderedDict[[['method', 'constant'], ['data', '1.225']]]]
{'data': '1.225', 'method': 'constant'}
>>>
3:

def ordereddict_to_dict[value]:
    for k, v in value.items[]:
        if isinstance[v, dict]:
            value[k] = ordereddict_to_dict[v]
    return dict[value]

Đã trả lời ngày 25 tháng 1 năm 2017 lúc 23:53Jan 25, 2017 at 23:53

SPGSPGspg

8.6394 Huy hiệu vàng34 Huy hiệu bạc39 Huy hiệu Đồng4 gold badges34 silver badges39 bronze badges

1

Đây là những gì có vẻ đơn giản nhất và hoạt động trong Python 3.7

from collections import OrderedDict

d = OrderedDict[[['method', 'constant'], ['data', '1.225']]]
d2 = dict[d]  # Now a normal dict

Bây giờ để kiểm tra điều này:

>>> type[d2]

>>> isinstance[d2, OrderedDict]
False
>>> isinstance[d2, dict]
True

Lưu ý: Điều này cũng hoạt động và cho kết quả tương tự -

{'method': 'constant', 'data':1.225}
0

Cũng như điều này -

{'method': 'constant', 'data':1.225}
1

Chúc mừng

Đã trả lời ngày 17 tháng 7 năm 2018 lúc 16:58Jul 17, 2018 at 16:58

Radtekradtekradtek

32.2k11 Huy hiệu vàng138 Huy hiệu bạc109 Huy hiệu đồng11 gold badges138 silver badges109 bronze badges

Bạn có thể sử dụng các tham số "Dict_Constructor".

>>> from collections import OrderedDict
>>> OrderedDict[[['method', 'constant'], ['data', '1.225']]]
OrderedDict[[['method', 'constant'], ['data', '1.225']]]
>>> dict[OrderedDict[[['method', 'constant'], ['data', '1.225']]]]
{'data': '1.225', 'method': 'constant'}
>>>
4
>>> from collections import OrderedDict
>>> OrderedDict[[['method', 'constant'], ['data', '1.225']]]
OrderedDict[[['method', 'constant'], ['data', '1.225']]]
>>> dict[OrderedDict[[['method', 'constant'], ['data', '1.225']]]]
{'data': '1.225', 'method': 'constant'}
>>>
5
>>> from collections import OrderedDict
>>> OrderedDict[[['method', 'constant'], ['data', '1.225']]]
OrderedDict[[['method', 'constant'], ['data', '1.225']]]
>>> dict[OrderedDict[[['method', 'constant'], ['data', '1.225']]]]
{'data': '1.225', 'method': 'constant'}
>>>
6
>>> from collections import OrderedDict
>>> OrderedDict[[['method', 'constant'], ['data', '1.225']]]
OrderedDict[[['method', 'constant'], ['data', '1.225']]]
>>> dict[OrderedDict[[['method', 'constant'], ['data', '1.225']]]]
{'data': '1.225', 'method': 'constant'}
>>>
5
>>> from collections import OrderedDict
>>> OrderedDict[[['method', 'constant'], ['data', '1.225']]]
OrderedDict[[['method', 'constant'], ['data', '1.225']]]
>>> dict[OrderedDict[[['method', 'constant'], ['data', '1.225']]]]
{'data': '1.225', 'method': 'constant'}
>>>
6

Greybeard

2.1037 Huy hiệu vàng25 Huy hiệu bạc59 Huy hiệu Đồng7 gold badges25 silver badges59 bronze badges

Đã trả lời ngày 20 tháng 5 năm 2021 lúc 14:09May 20, 2021 at 14:09

CoinzcoinzCoInz

Huy hiệu 411 Đồng1 bronze badge

2

Nếu cấu trúc dữ liệu của bạn có thể chứa các trường hợp nội bộ [lồng nhau]

{'method': 'constant', 'data':1.225}
8, bạn nên tận dụng cơ chế
>>> from collections import OrderedDict
>>> OrderedDict[[['method', 'constant'], ['data', '1.225']]]
OrderedDict[[['method', 'constant'], ['data', '1.225']]]
>>> dict[OrderedDict[[['method', 'constant'], ['data', '1.225']]]]
{'data': '1.225', 'method': 'constant'}
>>>
8 tích hợp của Python.

Bạn có thể ghi đè hành vi sao chép cho

{'method': 'constant', 'data':1.225}
8 thông qua mô -đun
import json
from collections import OrderedDict
input_dict = OrderedDict[[['method', 'constant'], ['recursive', OrderedDict[[['m', 'c']]]]]]
output_dict = json.loads[json.dumps[input_dict]]
print output_dict
0 của Python [cũng được sử dụng bởi
import json
from collections import OrderedDict
input_dict = OrderedDict[[['method', 'constant'], ['recursive', OrderedDict[[['m', 'c']]]]]]
output_dict = json.loads[json.dumps[input_dict]]
print output_dict
1]. Sau đó, bạn có thể sử dụng hàm
import json
from collections import OrderedDict
input_dict = OrderedDict[[['method', 'constant'], ['recursive', OrderedDict[[['m', 'c']]]]]]
output_dict = json.loads[json.dumps[input_dict]]
print output_dict
2 tích hợp của Python để thực hiện chuyển đổi.

{'method': 'constant', 'data':1.225}
2

Chỉ bằng cách sử dụng cơ sở hạ tầng sao chép xây dựng của Python, giải pháp này vượt trội so với tất cả các câu trả lời khác được trình bày ở đây, theo những cách sau:

  • Hoạt động cho các phân cấp dữ liệu tùy ý, bao gồm cả

    {'method': 'constant', 'data':1.225}
    
    8 lồng nhau.

  • Hoạt động cho nhiều hơn chỉ là dữ liệu JSON.

  • Không yêu cầu bạn thực hiện logic đặc biệt cho từng loại phần tử có thể [ví dụ:

    import json
    from collections import OrderedDict
    input_dict = OrderedDict[[['method', 'constant'], ['recursive', OrderedDict[[['m', 'c']]]]]]
    output_dict = json.loads[json.dumps[input_dict]]
    print output_dict
    
    4,
    import json
    from collections import OrderedDict
    input_dict = OrderedDict[[['method', 'constant'], ['recursive', OrderedDict[[['m', 'c']]]]]]
    output_dict = json.loads[json.dumps[input_dict]]
    print output_dict
    
    5, v.v.]

  • import json
    from collections import OrderedDict
    input_dict = OrderedDict[[['method', 'constant'], ['recursive', OrderedDict[[['m', 'c']]]]]]
    output_dict = json.loads[json.dumps[input_dict]]
    print output_dict
    
    6 sẽ xử lý đúng các đối tượng trùng lặp trong bộ sưu tập:

    {'method': 'constant', 'data':1.225}
    
    3

    Vì giải pháp của chúng tôi dựa trên

    import json
    from collections import OrderedDict
    input_dict = OrderedDict[[['method', 'constant'], ['recursive', OrderedDict[[['m', 'c']]]]]]
    output_dict = json.loads[json.dumps[input_dict]]
    print output_dict
    
    6, chúng tôi sẽ có cùng một lợi thế.

  • Giải pháp này cũng chuyển đổi các thuộc tính xảy ra là

    {'method': 'constant', 'data':1.225}
    
    8, không chỉ các yếu tố thu thập:

    {'method': 'constant', 'data':1.225}
    
    4
    {'method': 'constant', 'data':1.225}
    
    5

Đã trả lời ngày 3 tháng 8 lúc 19:44Aug 3 at 19:44

Stuart Bergstuart BergStuart Berg

16.1k11 Huy hiệu vàng64 Huy hiệu bạc94 Huy hiệu đồng11 gold badges64 silver badges94 bronze badges

Cách đơn giản của nó

{'method': 'constant', 'data':1.225}
6

Đã trả lời ngày 26 tháng 5 năm 2017 lúc 9:31May 26, 2017 at 9:31

Ramesh Kramesh kRamesh K

2224 Huy hiệu bạc13 Huy hiệu Đồng4 silver badges13 bronze badges

Một phiên bản xử lý từ điển lồng nhau và lặp lại nhưng không sử dụng mô -đun

>>> from collections import OrderedDict
>>> OrderedDict[[['method', 'constant'], ['data', '1.225']]]
OrderedDict[[['method', 'constant'], ['data', '1.225']]]
>>> dict[OrderedDict[[['method', 'constant'], ['data', '1.225']]]]
{'data': '1.225', 'method': 'constant'}
>>>
3. Từ điển lồng nhau trở thành
{'method': 'constant', 'data':1.225}
9, lặp lại trở thành
import json
from collections import OrderedDict
input_dict = OrderedDict[[['method', 'constant'], ['recursive', OrderedDict[[['m', 'c']]]]]]
output_dict = json.loads[json.dumps[input_dict]]
print output_dict
4, mọi thứ khác được trả lại không thay đổi [bao gồm các khóa từ điển và chuỗi/byte/bytearrays].

{'method': 'constant', 'data':1.225}
7

Đã trả lời ngày 13 tháng 9 năm 2020 lúc 19:45Sep 13, 2020 at 19:45

EponymousePonymousEponymous

5.4333 Huy hiệu vàng41 Huy hiệu bạc42 Huy hiệu đồng3 gold badges41 silver badges42 bronze badges

Đặt hàng có nghĩa là gì trong Python?

Lệnh của Python là một lớp con Dict bảo tồn thứ tự trong đó các cặp giá trị khóa, thường được gọi là các mục, được đưa vào từ điển. Khi bạn lặp lại một đối tượng đặt hàng, các mục được đi qua theo thứ tự ban đầu. Nếu bạn cập nhật giá trị của một khóa hiện có, thì thứ tự vẫn không thay đổi.a dict subclass that preserves the order in which key-value pairs, commonly known as items, are inserted into the dictionary. When you iterate over an OrderedDict object, items are traversed in the original order. If you update the value of an existing key, then the order remains unchanged.

Sự khác biệt giữa Dict và OrderedDict là gì?

Đơn đặt hàng là một lớp con của đối tượng Dict trong Python.Sự khác biệt duy nhất giữa OrderedDict và Dict là, theo thứ tự, nó duy trì các đơn đặt hàng của các khóa như được chèn.Trong Dict, việc đặt hàng có thể hoặc không thể xảy ra.Đặt hàng là một lớp thư viện tiêu chuẩn, được đặt trong mô -đun Bộ sưu tập.in OrderedDict, it maintains the orders of keys as inserted. In the dict, the ordering may or may not be happen. The OrderedDict is a standard library class, which is located in the collections module.

Làm thế nào để bạn lập một danh sách thành một từ điển?

Để chuyển đổi danh sách thành từ điển, chúng ta có thể sử dụng danh sách hiểu và tạo khóa: cặp giá trị của các yếu tố liên tiếp. Về mặt, typecase danh sách thành loại Dict.use list comprehension and make a key:value pair of consecutive elements. Finally, typecase the list to dict type.

Lệnh có được bảo tồn trong từ điển Python không?

Các đối tượng Dict Standard bảo tồn thứ tự trong các triển khai tham chiếu [CPYThon] của Python 3.5 và 3.6, và thuộc tính bảo tồn thứ tự này đang trở thành một tính năng ngôn ngữ trong Python 3.7.

Bài Viết Liên Quan

Chủ Đề