กำลังโหลดไฟล์ json ลงใน Power Query


7

ฉันกำลังพยายามโหลดไฟล์ JSON ที่ดึงจาก data.gov ไปยัง Power Query เพื่อจัดการ แต่ฉันไม่สามารถหาวิธีรับ Power Query เพื่อแปลงไฟล์ JSON ให้อยู่ในรูปแบบตาราง

มีวิธีแปลง JSON เป็นตารางใน Power Query โดยไม่ต้องเขียนแบบสอบถามแบบกำหนดเองหรือไม่

คำตอบ:


8

ข้อมูล JSON มักปรากฏเป็น Records ภายในรายการภายใน Records (และรูปแบบอื่น ๆ ) โดยปกติคุณสามารถใช้ PQ UI เพื่อขยายวัตถุเหล่านั้นโดยไม่ต้องเขียนโค้ด

นี่คือตัวอย่างจุดปลาย JSON: http://api.nobelprize.org/v1/laureate.json

หลังจากเรียกใช้ PQ "จากเว็บ" ขั้นตอนต่อไปคือการคลิกปุ่มเครื่องมือบันทึก / แปลง / เป็นตารางในริบบิ้น PQ

ส่งคืนแถวเดียวโดยมีคอลัมน์ที่สอง (ค่า) ที่มีรายการ คลิกปุ่มขยายถัดจาก "ค่า" เพื่อขยายรายการ

สิ่งนี้จะส่งคืนหลายแถวโดยที่แต่ละคอลัมน์ที่สอง (ค่า) จะมีระเบียนอยู่ในขณะนี้ ขยายระเบียนเพื่อรับคอลัมน์ของข้อมูลในรูปแบบตาราง

โปรดทราบว่ามีความลึกมากขึ้นในรูปแบบ JSON นี้โดยเฉพาะ - ดูคอลัมน์ Value.prizes ที่ด้านขวาสุด ขั้นตอนที่แน่นอนของคุณอาจแตกต่างกันไปขึ้นอยู่กับอินพุต JSON และข้อกำหนดเอาต์พุตของคุณ

นี่คือรหัสเต็มรูปแบบในการไปยังตาราง - แต่ละขั้นตอนสร้างขึ้นโดยการคลิกที่ UI

let
    Source = Json.Document(Web.Contents("http://api.nobelprize.org/v1/laureate.json")),
    #"Converted to Table" = Record.ToTable(Source),
    #"Expanded Value" = Table.ExpandListColumn(#"Converted to Table", "Value"),
    #"Expanded Value1" = Table.ExpandRecordColumn(#"Expanded Value", "Value", 
        {"id", "firstname", "surname", "born", "died", "bornCountry", "bornCountryCode", 
         "bornCity", "diedCountry", "diedCountryCode", "diedCity", "gender", "prizes"},
        {"id", "firstname", "surname", "born", "died", "bornCountry", "bornCountryCode",
         "bornCity", "diedCountry", "diedCountryCode", "diedCity", "gender", "prizes"})
in
    #"Expanded Value1"

ขอบคุณไมค์ ทำงานได้ดีจริงๆ ฉันพยายามปรับให้เข้ากับไฟล์ JSON ที่ซับซ้อนจริงๆที่ฉันดาวน์โหลด ฉันคิดว่านี่จะทำให้ฉันได้ 90% ของที่นั่น
CountZero

ไม่เป็นไร แฟนกิบสันล่ะ?
Mike Honey

แน่นอนค่ะ มันโปร่งใสหรือไม่
CountZero

เฉพาะกับผู้ที่เอายาแดง ...
ไมค์น้ำผึ้ง

PS: ตั้งแต่ฉันได้ทำการโคลนฟังก์ชั่น ExpandAll ของ Chris Webb กับอันที่ทำงานในคอลัมน์ประเภทบันทึก - ขยายทุกคอลัมน์เท่าที่จะไป ตรวจสอบ: gist.github.com/Mike-Honey/0a252edf66c3c486b69b
Mike Honey
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.