Python用python修改JSON的结构(被BQ接受)并保存

时间:2018-06-18 10:05:55

标签: python json

我想问一下使用Python是否有一种简单的方法来修改JSON?

我找到了一些相关话题 - How to update json file with python但是无法找出解决我当前问题的方法。

目前,JSON看起来像这样:

    {
         "X": [
           {
               "sample_topic_x":"sample_content_x_1",
               ...
           }
           {
               "sample_topic_x":"sample_content_x_2",
               ...
           }
           ......
         ]
         "Y": [
           {
               "sample_topic_y":"sample_content_y_1",
               ...
           }
           {
               "sample_topic_y":"sample_content_y_2",
               ...
           }
           ......
         ]
}

必填:要被BQ接受/需要删除“Y”,请仅保留此格式的“X”。

{"sample_topic_x":"sample_content_x_1",.....}
{"sample_topic_x":"sample_content_x_2",.....}
{"sample_topic_x":"sample_content_x_3",.....}

任何相关文档,主题?

P.S>更新1.0

import json
json_path = 'C:\XXX\exportReport.json'

def updateJsonFile():
jsonFile = open(json_path, "r") # Open the JSON file for reading
data = json.load(jsonFile) # Read the JSON into the buffer
jsonFile.close() # Close the JSON file

updateJsonFile()

2 个答案:

答案 0 :(得分:0)

<强>解决方案:

import json
json_path = 'C:\XXX\exportReport.json'
output_path = 'C:\XXX\your_output_file.txt'

with open(json_path) as f:
    data = json.loads(f.read())

# Opening output file in append mode
# Note: Output file is not JSON, as the required format is not valid json
with open(output_file, "a+") as op:
    for element in data.get('X'):
        op.write(json.dumps(element) + "\n")

<强>解释

使用json.loads加载输入的json文件。输出文件将是纯文本文件而不是JSON文件,因为所需的输出格式不是有效的JSON。使用.txt文件存储输出。将商品值json.loads()存储在数据中。要获取内部元素 X 这是一个字典列表,请使用data.get('X'),它将返回列表。迭代它并将json.dumps()写入输出文件,换行符中的每个元素。

<强> C:\ XXX \ exportReport.json

{

    "X": [
       {
           "sample_topic_x":"sample_content_x_1",
           ...
       }
       {
           "sample_topic_x":"sample_content_x_2",
           ...
       }
       ......
     ]
     "Y": [
       {
           "sample_topic_y":"sample_content_y_1",
           ...
       }
       {
           "sample_topic_y":"sample_content_y_2",
           ...
       }
       ......
     ]
}

<强> C:\ XXX \ your_output_file.txt

{"sample_topic_x":"sample_content_x_1",.....}
{"sample_topic_x":"sample_content_x_2",.....}
{"sample_topic_x":"sample_content_x_3",.....}

答案 1 :(得分:-1)

您首先需要提取父数据。并确定这是一个变量。并搜索&#34; X&#34;此变量中的数据。