Những gì @Andrea-F có vẻ tốt với tôi, đây là một giải pháp khác: Hãy chọn trong cả hai :)
Đó là cùng một ý tưởng, trước tiên tôi tạo ra một 6 lớn để được lưu trực tiếp trong JSON. Tôi sử dụng câu lệnh 7 để lưu json tránh bắt 8Ngoài ra, bạn nên có một cái nhìn về tài liệu của 9 nếu bạn cần cải thiện trong tương lai trong đầu ra 0 của mình.CHỈNH SỬA Và chỉ để cho vui, nếu bạn không thích 1 var, bạn có thể thực hiện tất cả các vòng lặp 2 trong một lớp lót :)
Nó có thể cung cấp cho giải pháp cuối cùng một cái gì đó không hoàn toàn dễ đọc như sau:
Chỉnh sửa 2 Có vẻ như bạn không muốn lưu 0 của mình dưới dạng đầu ra mong muốn, nhưng hãy đọc nó.Trên thực tế, bạn cũng có thể sử dụng 9 để in JSON của bạn. 2Tuy nhiên, vẫn còn một vấn đề ở đây, 5 được in ở cuối danh sách vì 6 của 7 xuất hiện trước 8.Để buộc trật tự, bạn sẽ phải sử dụng 9 trong thế hệ của dict. Cẩn thận cú pháp là xấu (IMO) với 20Đây là giải pháp hoàn chỉnh mới;) 9Sẽ đầu ra: 0Nhưng hãy cẩn thận, hầu hết thời gian, tốt hơn là lưu một tệp 21 thông thường để là ngôn ngữ chéo.
Python
Đặt mua Tắt tiếng Trang thân thiện với máy in 2Lời chào, sử dụng con trỏ tìm kiếm python và arcpy, tôi đã trích xuất (các) danh sách từ điển có chứa các cặp giá trị khóa được chuẩn hóa có nguồn gốc từ các bảng cụ thể nhưng nằm trong lớp cơ sở dữ liệu được vóc dáng. Trong cùng một tập lệnh, bây giờ tôi là & nbsp; tạo một chuỗi JSON với một đối tượng chứa các mảng cặp và giá trị [] đó & nbsp; có chứa & nbsp; . Có một đối tượng 'chèn' được tạo cho mỗi bảng nguồn mà dữ liệu được chưng cất nên tôi kết thúc bằng cấu trúc & nbsp; có các mảng trường & giá trị có trong các đối tượng có trong các mảng 'chèn' có trong các đối tượng có trong các mảng 'bảng' có chứa Trong đối tượng JSON như sau: {"TableInserts": [{"chèn": [{'trường ": []," giá trị ": [] & nbsp; & nbsp; & nbsp;} & nbsp; & nbsp; & nbsp;] ; & nbsp;} & nbsp; & nbsp; & nbsp;}. & nbsp; Tôi đã có tập lệnh Python của mình để loại bỏ cấu trúc tôi theo sau nhưng tôi gặp khó khăn trong việc tách các cặp giá trị chính có trong danh sách các cấu trúc từ điển của tôi vào các mảng JSON mục tiêu và giá trị tương ứng của chúng. & NBSP; "table": "place_nm", "inserts": [ { "fields": [ "fields": [ Python "lu_stat_id": 1, "lu_use_desig_id": 1, "place_nm": "" Một phần của cấu trúc chuỗi JSON được sản xuất: ] }
}, Whereas I need it to produce (specifically, breaking key value pairs being parsed from dictionaries into "fields": & "values": arrays): { ] The challenge is that the dictNorm dictionary structure references lists of dictionaries for the individual key value pairs I want to separate out so I need to unpack key value pairs existing in dictionaries wrapped in lists that are inside of a dictionary. I'm thinking I need another for loop iterator below line 13 to parse through these sub lists of dictionaries called in the dictNorm structure which if you were to print out dictNorm, a specific dictionary contained within would look like: 'place_nm': [ {'lu_stat_id':
1, 'lu_use_desig_id': 1, 'place_nm': u'National Monument'}, ] Any assistance would be appreciated as I know I have a lot going on here before getting to the JSON construction piece.
1 Solution Is this what you are after? 38 Replies You talk about needing JSON but the code beneath "Whereas I need it to produce" isn't valid JSON. Yes it was my own "freehand" JSON provided as an example to show the key value pairs in a single array as they exist in their original dictionary structure and not separated out into "fields": and "values": arrays. I've corrected the non valid JSON. Is this what you are after? 3Yes indeed. I couldn't quite figure out how to construct that inner most for loop in the TNFL. I see you picked up on some clues to the larger JSON string being constructed. I just modified it to fit the larger string structure and to iterate through multiple lists of dictionaries each containing distilled information from a specific table. 5Output: [ Bây giờ tôi đang cố gắng đặt trình bao bọc đối tượng JSON bên ngoài {} có chứa siêu dữ liệu về dữ liệu có trong chuỗi chúng tôi đã tạo cho đến nay xung quanh điều này. Ban đầu tôi nghĩ rằng điều này sẽ thẳng thắn nhưng tôi bị vấp ngã. Tôi có một bộ ba thứ tự lồng nhau mà tôi đã tạo ra bắt chước từ điển trong danh sách trong cấu trúc từ điển Tôi đang gọi dữ liệu của mình từ đó tạo ra cấu trúc chuỗi JSON đầy đủ bên dưới nhưng tôi không thể tích hợp hoặc tạo lại logic TNFL ở trên lấy và giải nén giá trị chính Các cặp từ cấu trúc dict bên trong hầu hết tôi đang lấy dữ liệu và giải nén chúng vào các "trường" tương ứng của chúng: và "giá trị": mảng. Điều này thậm chí có thể thực hiện & nbsp; (nối thêm cấu trúc bên trong và đặt hàng) hoặc i & nbsp; điều chỉnh lửa và thử & nbsp; để tạo & nbsp; 0Output: {"metafield1": "somedata", "metafield2": null, "metafield3": "somedata", "metafield4": 100000000, "entityType": "địa điểm", "pableinserts": [& nbsp; & nbsp; ; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ; & nbsp; & nbsp; "Trường": [], & nbsp; ": [] & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ; & nbsp;] & nbsp; & nbsp; & nbsp;}, & nbsp; ; & nbsp; "chèn": [& nbsp; & nbsp; & nbsp; p; {& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; {& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "giá trị": [] bsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "chèn": [& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;} "metafield1": "somedata", "metafield2": null, "metafield3": "somedata", "metafield4": 100000000, "EntityType": "PLACE", "tableInserts": [ { "table": "place_nm", "inserts": [ { "fields": [], "values": [] } ] }, { "table": "place", "inserts": [ { "fields": [], "values": [] } ] }, { "table": "place_geom_p", "inserts": [ { "fields": [], "values": [] } ] }, { "table": "place_type", "inserts": [ { "fields": [], "values": [] } ] } ]} Những gì tôi muốn làm nhưng không thể lặp lại và nối vào bên trong danh sách có tên "bên trong" bên trong OrderedDict: 1Điều này có hoạt động không (tôi nghĩ nó hơi khác so với những gì bạn muốn)? 2Nếu đoạn mã ở trên không phải là những gì bạn muốn, tôi nghĩ rằng có một cách để có được nó bằng cách sử dụng DefaultDict. & NBSP; Điều đó nói rằng, tôi không đề nghị bạn đi xuống con đường này về cấu trúc mã. & NBSP; Mặc dù cô đọng, điều này đang tiếp cận Code Golf, rất thú vị nhưng tạo ra mã khó đọc và bảo trì. & NBSP; Tôi khuyên bạn nên khử nest khối mã constjson của bạn bằng cách sử dụng các vòng lặp bên ngoài hoặc xác định hàm và gọi nó cho các kết quả bạn muốn để chèn và giá trị. Cảm ơn! Mod nhẹ để bật & nbsp; cho các vòng lặp trong cấu trúc vòng được lồng cho các lớp & nbsp; các lớp ordereddict () tương ứng & nbsp; và nó hoạt động rất đẹp: 3Vì vậy, tôi có một lớp phức tạp khác đã được thêm vào điều này với một thông số JSON mới. rằng tôi không thể tìm ra. Nghĩa là thêm một mảng bổ sung 'nestedTableInsert' chứa các mảng cho các khóa và một mảng cho các giá trị nhưng chỉ cho một bảng cụ thể, tức là khi bảng 'K' có một tên cụ thể. Tôi đã tạo ra cấu trúc nhưng không biết làm thế nào để tạo thêm 'NestedTableInsert' tạo đối tượng này có điều kiện & nbsp; trên k = 'TABLE_X' chẳng hạn. Tôi tò mò về việc nếu điều này có thể được thực hiện với các cấu trúc được đặt hàng lồng nhau () hoặc nếu tôi sẽ phải quay lại bảng vẽ cho cách tiếp cận của tôi ở đây. 4Vì vậy, dưới đây, & nbsp; hoàn thành những gì tôi đang cố gắng làm ở trên.Tôi chỉ cần tìm ra cách đảm bảo rằng NestedTableInsert & nbsp; chứa dữ liệu cho mảng tên mà nó đang được lồng vào.Hiện tại nó chỉ tạo ra cùng một dữ liệu trong mảng lồng nhau cho nhiều mảng chèn place_nm được tạo.Hmmm ... & nbsp; 5
|