Python json字符串篡改

Python json字符串篡改,python,json,serialization,Python,Json,Serialization,我有一个JSON序列化值的python字典 我想添加到这些序列化字符串中,而不必先执行加载(…),然后再执行转储(…)——因此我“摆弄”序列化值: 目前我有: for key, value in my_dict.items(): # creating JSON of additional data I want in the JSON string extra = dumps({ 'key1': 3, 'key2': 1 }, default=str) # cuttin

我有一个JSON序列化值的python字典

我想添加到这些序列化字符串中,而不必先执行
加载(…)
,然后再执行
转储(…)
——因此我“摆弄”序列化值:

目前我有:

for key, value in my_dict.items():
    # creating JSON of additional data I want in the JSON string
    extra = dumps({ 'key1': 3, 'key2': 1 }, default=str)

    # cutting the last '}' from the end off 'value', the '{' and '}' from the
    # start and end of 'extra', and then concatting them together.
    my_dict[key] = '%s,%s' % (value[:-1], extra[1:])

我这样做是因为我认为转储和加载< /代码>浪费,但我当前的方法不是非常的Pythic。 有更好的方法吗

注意:“额外”值与初始JSON值来自不同的源,不能在原始数据序列化点插入

使用约20个JSON blob的dict时的时差:

  • 摆弄:0.0005秒
  • json>py>json:0.0025秒
快5倍

和20000人一起玩:

  • 摆弄:0.333
  • json>py>json:0.813
快60%以上

20万人:

  • 小提琴:4.5
  • json>py>json:10.25

Pythonic的方法是解析JSON字符串,修改值,然后序列化它,速度快60%以上。JSON解析速度非常快,比标准的pickle/unpickle函数快得多,除非有大量数据(数万行),否则可能不会降低速度。不要过早地陷入优化的陷阱

在任何情况下,您都应该以一种优美、通俗易懂的方式编写应用程序,然后(如果必要的话!)在以后优化代码中缓慢的部分



另一种优化方法可以是用C编写相关代码,或者使用C库进行JSON序列化。看一看或看一看,这解释了标准库
simplejson
如何比您正在使用的
json
模块快得多。

python方法是解析json字符串,修改值,然后序列化它。JSON解析速度非常快,比标准的pickle/unpickle函数快得多,除非有大量数据(数万行),否则可能不会降低速度。不要过早地陷入优化的陷阱

在任何情况下,您都应该以一种优美、通俗易懂的方式编写应用程序,然后(如果必要的话!)在以后优化代码中缓慢的部分



另一种优化方法可以是用C编写相关代码,或者使用C库进行JSON序列化。看一看或看一看,这解释了标准库
simplejson
如何比您正在使用的
json
模块快得多。

请参阅我的答案更新。使用C库对JSON进行非序列化比摆弄字符串快得多。请参阅我的答案更新。使用C库对JSON进行非序列化比处理字符串快得多。