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}
0Cũng như điều này -
{'method': 'constant', 'data':1.225}
1Chú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}
2Chỉ 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ả
8 lồng nhau.{'method': 'constant', 'data':1.225}
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ụ:
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: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
3{'method': 'constant', 'data':1.225}
Vì giải pháp của chúng tôi dựa trên
6, chúng tôi sẽ có cùng một lợi thế.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
Giải pháp này cũng chuyển đổi các thuộc tính xảy ra là
8, không chỉ các yếu tố thu thập:{'method': 'constant', 'data':1.225}
4{'method': 'constant', 'data':1.225}
5{'method': 'constant', 'data':1.225}
Đã 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