gpt4 book ai didi

python - 如何使用 Python 扁平化 Json 文件?

转载 作者:行者123 更新时间:2023-12-01 09:10:27 26 4
gpt4 key购买 nike

我有以下输入: https://textuploader.com/dz3xo

这包含两个订单。

可以使用以下方法将输入转换为 Json:

print json.dumps(response2)

我想操纵这个输入以 Json 形式显示,如下所示:

https://jsonblob.com/85f329dc-994c-11e8-8a91-931af4d591d9

操作很简单:删除任何子 Json 并加入到父 Json 中。

我编写了以下函数:

def flatten_json(y):
out = {}

def flatten(x, name=''):
if type(x) is dict:
for a in x:
flatten(x[a], name + str(a) + '_')
elif type(x) is list:
out[name[:-1]] = x
else:
out[name[:-1]] = x

flatten(y)
return out


def generatejson2(response2):
sample_object = pd.DataFrame(response2).to_dict()
flat = {k: flatten_json(v) for k, v in sample_object.items()}
return json.dumps(flat, sort_keys=True)


response2 = Func_Create_Data()
flat_json = generatejson2(response2)

但这不是我想要的结果。它给: enter image description here

它混合了同一索引下两个订单的数据。行号决不能出现在索引名称中。

我找不到我的代码的问题。知道出了什么问题吗?

最佳答案

您的展平函数应该可以正常工作,您确定在行中传递了正确的信息

flat = {k: flatten_json(v) for k, v in sample_object.items()}

该行中的 'k' 看起来很像 ['customer', 'shippingAddress', ...],而不是预期的 ['0', '1']。我猜你应该有一个

0_country_currency_id: 2

在您的送货地址内?

关于python - 如何使用 Python 扁平化 Json 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51702960/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com