【问题标题】:Loading JSON data with apostrophe (single quote) i加载带有撇号(单引号)的 JSON 数据 i
【发布时间】:2018-05-23 15:37:39
【问题描述】:

这是专门关于将数据插入 CrateDB,

我有一张表,其中有一列是 OBJECT 类型的。我正在尝试使用 python 将 JSON 数据插入其中,并且进展顺利。

创建表用户(userdata OBJECT);

但是,我的数据中有撇号,即单引号,因此插入失败。我已经在控制台上复制了这个问题:

以下数据中的问题在于“snr”字段。我曾尝试输入反斜杠,但这无济于事。

谁能告诉我如何才能得到以下插入

INSERT into users (userdata) 
VALUES ('{"area_code": "2", "companyname": "TEC", "cos": "National24Hrs-Standard", 
"country_code": "AUS", "cucm_dn": "26902", "ddi": "84236902", "department": null, 
"device_type": "Cisco 8945 SIP", "divisionname": "Demonstrations", 
"emailaddress": "bart.simpson@core.demo.telstra.com", "extension": "26902", 
"extra1": null, "extra2": null, "extra3": null, "extra4": null, 
"featuregroup": "Mobile Worker", "firstname": "Bart", "information": null, 
"ippbxchosen": "TEC-CL-1", "language": "English - United States", "lastname": "Simpson", 
"locationname": "Sydney", "mask": "61284236902", "pickupgroup": null, "postcode": "2000", 
"presence": "Y", "role": "enduser", "security_profile": "EndUser-SP1", 
"snr": "Bart\'s Mobile:0457503561,Bart Simpson:457503561", 
"username": "bart.simpson@core.demo.telstra.com", "voicemail": "UCX-Advanced-CoS"}')

【问题讨论】:

  • 也许尝试两个单引号而不是反斜杠引号?
  • select 'a''a'; 将输出a'a

标签: json cratedb


【解决方案1】:

将 JSON string 插入 CrateDB object 类型的列将始终失败,这与您的情况下的错误转义无关。将其作为 CrateDB 对象(我猜这是您想要的)插入以获得访问/搜索每个键/值的好处,或者将数据类型更改为 string

请参阅有关使用对象文字 https://crate.io/docs/crate/reference/en/latest/general/ddl/data-types.html#object-literals 的文档。 此外,大多数 CrateDB 客户端驱动程序都支持将数据绑定为对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-15
    • 1970-01-01
    • 2016-12-13
    • 2012-08-22
    相关资源
    最近更新 更多